我已经使用FindFundamentalMat
了CvMat
我从FindChessboardCorners
. 文档指定StereoRectifyUncalibrated
可以使用与FindFundamentalMat
.
但是,当我尝试使用 时StereoRectifyUncalibrated
,出现以下错误:
OpenCV Error: Assertion failed (CV_IS_MAT(_points1) && CV_IS_MAT(_points2) && (_points1->rows == 1 || _points1->cols == 1) && (_points2->rows == 1 || _points2->cols == 1) && CV_ARE_SIZES_EQ(_points1, _points2)) in cvStereoRectifyUncalibrated, file /home/moos/prog/opencv/OpenCV-2.1.0/src/cv/cvcalibration.cpp, line 2539
似乎点的数组StereoRectifyUncalibrated
应该是一维的,但是我怎样才能指定对应点的 x 和 y 坐标呢?
以前我做过:
cv.FindFundamentalMat(points1,points2,F,method=cv.CV_FM_RANSAC,param1=1.,param2=cv.CV_FM_8POINT)
cv.Save("F.xml",F);
cv.StereoRectifyUncalibrated(points1,points2,F,(320,240),H1,H2,threshold=5)
错误发生在StereoRectifyUncalibrated
(不是在FindFundamentalMat
)。
然后我尝试了:
cv.StereoRectifyUncalibrated(points1[1],points2[1],F,(320,240),H1,H2,threshold=5)
没有发生错误!但我不确定我是否做对了。