Example. Estimation of fundamental matrix using RANSAC algorithm
int point_count = 100;
CvMat* points1;
CvMat* points2;
CvMat* status;
CvMat* fundamental_matrix;
points1 = cvCreateMat(1,point_count,CV_32FC2);
points2 = cvCreateMat(1,point_count,CV_32FC2);
status = cvCreateMat(1,point_count,CV_8UC1);
/* Fill the points here ... */
for( i = 0; i <>data.db[i*2] =
points1->data.db[i*2+1] =
points2->data.db[i*2] =
points2->data.db[i*2+1] =
}
fundamental_matrix = cvCreateMat(3,3,CV_32FC1);
int fm_count = cvFindFundamentalMat( points1,points2,fundamental_matrix,
CV_FM_RANSAC,1.0,0.99,status );
其中标注了红色的部分为矛盾处。
32F:表示32位的浮点数,也就是float型。
可是 points2->data.db表示的是double型。这样在数据读写的时候就会出现地址错误。
所以应该如下修正:
32F:----->64F
或者
points2->data.db----->points2->data.fl
没有评论:
发表评论