1

重複の可能性:
cv::Point のセットで偽の傾き補正のために cv::warpPerspective を実行する

この方法を使用して画像の傾き補正に取り組んでいます。ただし、期待どおりの結果が得られず、代わりにこの 出力が得られます http://imadev24.com/op.jpg

これが私のコードです:

int main() {
    const IplImage *input = cvLoadImage("input.jpg");
    IplImage *output = cvCloneImage(input);
    cvNamedWindow("Input", 1);
    cvShowImage("Input", input);

    CvMat* mmat = cvCreateMat(3,3,CV_32FC1);
    //CvPoint2D32f* c1 = (&cvPoint2D32f(41,21), &cvPoint2D32f(241,41), &cvPoint2D32f(22,201), &cvPoint2D32f(260,181));
    CvPoint2D32f* c1 = (&cvPoint2D32f(43,18), &cvPoint2D32f(280,40), &cvPoint2D32f(19,223), &cvPoint2D32f(304,200));
    CvPoint2D32f* c2 = (&cvPoint2D32f(0,0), &cvPoint2D32f(320,0), &cvPoint2D32f(0,240), &cvPoint2D32f(320,240));
    mmat = cvGetPerspectiveTransform(c1, c2,mmat);
    cvWarpPerspective(input, output, mmat,CV_INTER_LINEAR);
    cvNamedWindow("Output", 1);
    cvShowImage("Output", output);
    // wait key for 5000 ms
    cv::waitKey(5000);
    return 1;
}

私は画像処理の初心者で、何が問題なのかわかりませんでした。これを実装する際に私が間違っていた場所を誰かに教えてもらえますか?

4

0 に答える 0