我基本上是尝试将另一行添加到使用findHomography()函数发现的2x3单应性矩阵中。
Mat insert = (Mat_<double>(1,3)<<0 , 0 , 1);
Mat homography = findHomography(features1 , features2 , CV_RANSAC);
resize(affine , affine , Size(3,3));
homgraphy.push_back(insert);
cout<<"Homography"<<" "<<homography;
但是,当我打印单应性时,第三行没有两个零,而只有很小的数字。我希望最后一行恰好是{0,0,1}。我该怎么做?
最佳答案
如果找不到导致矩阵损坏的内容(尝试打印insert
以查看其是否已更改),则可以通过以下方式强制使用此问题:
Mat insert = (Mat_<double>(1,3)<<0 , 0 , 1);
Mat homography = findHomography(features1 , features2 , CV_RANSAC);
resize(affine , affine , Size(3,3));
homgraphy.push_back(insert); // ADD EXTRA ROW TO HOMOGRAPHY RESULT
homgraphy.at<Vec3d>(2,0) = Vec3d(0.0, 0.0, 1.0); // OVERWRITE BOTTOM ROW OF MAT
关于opencv - 向Mat对象添加另一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320791/