2
我正在嘗試糾正圖像。我有點對應關係,我計算了矩陣F1和F2。之後,我想糾正。以下是我的代碼如何使用cv :: warpPerspective進行透視轉換?
cv::Mat F1(4,4, CV_64FC1);
cv::Mat F2(4,4, CV_64FC1);
CvMat* points1 = cvCreateMat(8,1,CV_64FC2);
CvMat* points2 = cvCreateMat(8,1,CV_64FC2);
for (int i=0; i<8; i++) {
cvSet2D(points1,i,0,cvScalar(gt[i].xL,gt[i].yL));
cvSet2D(points2,i,0,cvScalar(gt[i].xR,gt[i].yR));
}
cv::Size size (imgL->width, imgL->height);
cv::stereoRectifyUncalibrated(points1, points2, F, size, F1, F2);
IplImage* rectL = cvCreateImage(cvSize(imgL->width,imgL->height), imgL->depth, imgL->nChannels);
cv::warpPerspective(imgL, rectL , F1, size);
cvSaveImage("rectL.jpg", rectL);
的錯誤是以下
error: in passing argument 2 of ‘void cv::warpPerspective(const cv::Mat&, cv::Mat&, const cv::Mat&, cv::Size, int, int, const cv::Scalar&)’
而且,如果我做一個創造CvMat中如下
CvMat* rectified1 = cvCreateMat(imgL->width,imgL->height,imgL->depth);
cv::warpPerspective(imgL, *rectified1, F1,size);
cvSaveImage("rectified1.png", imgL);
那麼錯誤是在保存圖像。它說這個數組不被識別。
我想知道是否有人可以請在這幫助我。
非常感謝。