2012-02-20 4 views
0

두 개의 등고선을 matchShapes 메소드와 일치 시키려고하는데 어설 션이 실패합니다. 이것이 잘못된 매트 형식과 관련이 있어야한다는 것을 알고 있지만 해결할 수없는 것처럼 보입니다.OpenCV || matchShapes 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의 오류 :

findContours은 매우 잘 작동 어설

내가 실패 여기서 어둠 속에서 조금. 도움을 주시면 감사하겠습니다.

대단히 감사합니다.

+0

동일한 작업을 구현해야하지만 opencv에 대해 많이 알지 못합니다.이 기능을 구현 한 코드를 제공해주십시오. – Gypsa

답변

2

저는 openCV에서도 초보자입니다. 그러나 오늘이 문제를 해결하는 방법을 알아 냈습니다 (많은 시행 착오 끝에). findContours의 출력처럼 각 형상을 반복하고 matchShapes에 전달, 유형 vector<Point>하지 vector<vector<Point> >이어야 설명서에 따라 matchShapes이 하나

matchShapes(contours[0], contourstwo[0], CV_CONTOURS_MATCH_I3, 0); 
관련 문제