向Mat对象添加另一行

时间:2014-08-15 03:19:30

标签: opencv matrix row

我基本上试图将另一行添加到我使用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;

但是当我打印单应性时,第3行没有两个零但是数字非常小。我希望最后一行正好是{0,0,1}。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

如果找不到破坏矩阵的内容(尝试打印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