2014-01-14 2 views
4

opencv의 findContours에 문제가 있습니다. 출력에 너무 많은 데이터가 있으며 계층을 올바르게 사용하는 것이 핵심이라는 것을 알고 있습니다. OpenCV의 워드 프로세서에서 아래 이미지를 감안할 때 :opencv에서 중복 된 윤곽

Opencv Docs

나는 2A 및 3A를 제외한 모든 윤곽을 그리는 싶습니다. 결과를 얻기 위해 계층 구조를 탐색하고 위치를 찾는 올바른 방법은 무엇입니까?

+0

원본 이미지를 공유 할 수 있습니까? – karlphillip

+0

위에 흰색 선과 빨간색 숫자가있는 검은 색 이미지가 있습니까? 그렇지 않다면 원본 이미지는 페이지 상단에 있습니다. (http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.html) –

+0

빨간색으로 생각했습니다. 숫자는 어떤 윤곽을 감지하려고했는지 설명하기 위해 추가 한 것입니다. – karlphillip

답변

6

findContours 함수에서 발견되는 윤곽에는 방향이 있습니다. 물체는 시계 반대 방향이고 구멍은 시계 방향입니다. 따라서 각 등고선의 서명 된 영역을 확인하면 기호로 구멍인지 여부를 알 수 있습니다. 윤곽의 서명 영역은 다음과 같은 방법으로 계산 될 수있다 : 계층 구조를 사용하여 물론

contourArea(contour, true); 

도 좋은 방법입니다하지만 난이 방법을 이해하고 구현하는 간단한 생각합니다. @Michael Burdinov 말한 +가했습니다 수익률과 - 제가 값 객체 또는 holdes에

+0

내 요구 사항에 대해 깨끗하고 약 85 % 정확도로 작동합니다. 믹싱에 skeletonization을 추가하려고 시도했지만 출력이 너무 적습니다. 나는 몇 줄의 더블 라인을 가지고 있지만 이전과 같을 것은 아무것도 없다. 고맙습니다! –

0

추가