2012-02-20 150 views
0

我试图用matchShapes方法匹配两个轮廓,但我总是断言失败。 我知道这一定与Mat格式错误有关,但我似乎无法解决它。OpenCV || matchShapes findContours assertion failed

的findContours工作得非常好:

vector<vector<cv::Point> > contours; 
cv::findContours(incomingimage, 
       contours, 
       CV_RETR_EXTERNAL, 
       CV_CHAIN_APPROX_SIMPLE); 

vector<vector<cv::Point> > contourstwo; 
cv::findContours(incomingimagetwo, 
       contourstwo, 
       CV_RETR_EXTERNAL, 
       CV_CHAIN_APPROX_SIMPLE); 

我从这些方法输出不错,但随后

matchShapes(Mat(contours), Mat(contourstwo), CV_CONTOURS_MATCH_I3, 0); 

回报

OpenCV的错误:断言失败

我这里有点黑暗。 任何帮助将不胜感激。

非常感谢。

+0

我也必须执行相同的工作,但我对opencv的了解不多。请提供您为此功能实施的代码。 – Gypsa 2012-08-24 09:26:09

回答

2

我也是初学者在openCV,但我只是想出如何解决这个今天 (经过多次试验和错误)。 请根据文档应该是类型vector<Point>和不vector<vector<Point> >的尝试这一个

matchShapes(contours[0], contourstwo[0], CV_CONTOURS_MATCH_I3, 0); 
0

输入到matchShapes,因为是findContours输出,仅仅遍历每个轮廓并将它传递给matchShapes

相关问题