OpenCV2.4.2将vector <point2f>转换为Mat,并释放mat会导致错误</point2f>

时间:2014-07-15 05:59:13

标签: opencv mat

我正在将向量更改为Mat,因为出于某种原因,如果采用向量,findHomography()仅生成零矩阵。

所以以下是简短的代码。

{
std::vector<Point2f> img1;
std::vector<Point2f> img2;
Mat mat_from_img1 = Mat(img1,true); 
Mat mat_from_img2 = Mat(img2,true); 
Mat H = cv::findHomography(mat_from_img1,mat_from_img2, CV_RANSAC);

//Do THINGS

}//as soons as getting out of this scope, 
//it calls ~MAT() then Mat::release and causes memory reading violation error.

如何正确地将矢量转换为mat以避免错误? 我试过了

Mat mat_from_img1 = Mat(img1,true);任

1 个答案:

答案 0 :(得分:0)

您无需将这些向量转换为Mats。您可以将它们直接传递给cv::findHomography() - 它需要InputArrayInputArray can be a std::vector

请参阅示例 http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

检查img1和img2中的内容 - 根据您的代码,它们是空的!