关于模式匹配:OpenCV ||

OpenCV || matchShapes findContours assertion failed

我试图用matchshapes方法匹配两个轮廓,但总是得到断言失败。我知道这一定与错误的mat格式有关,但我似乎无法解决它。

FordTraces工作非常好:

1
2
3
4
5
6
7
8
9
10
11
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);

我从这些方法中得到了很好的输出,但是

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

收益率

opencv错误:断言失败

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

非常感谢你。


我也是OpenCV的初学者,但我今天才知道如何解决这个问题。(经过多次反复试验)。请试试这个

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

根据文件,matchShapes的输入应为vector型,而不是vector >型,正如findContours的输出一样,只需迭代每个轮廓并传递给matchShapes型。