2012-09-02 3 views
4

다음 이미지에서 빨간색과 파란색으로 표시되어야하는 영역을 식별하는 방법을 설명해 주실 수 있습니까? cvFindContours() 메서드를 사용하려고했지만 예상 한 결과를 얻지 못했습니다.opencv/javacv에서 영역 계산?

입력 이미지

enter image description here

예상 결과 내가 신원을 확인하거나 윤곽 이런 종류의 면적을 계산하는 다른 방법이 있는지 알고 싶습니다

enter image description here . 이 코드로 간단한 코드 예제를 공유 할 수있을 정도로 친절하십시오.

+0

당신은 단순히 모든 등고선을 찾아서 2 개의 가장 큰 것을 유지할 수있을 것 같은가요? –

+1

cvBlobslib 라이브러리를 사용해보십시오 ... 블롭의 영역을 제공하는 함수를 가지고 있습니다 ... 여기 cn은 검정색 backgruond (.. 경계선 ..)에 blob로서 흰색 패치를 고려합니다 .http : // opencv .willowgarage.com/wiki/cvBlobsLib –

답변

0

함수 floodFill은 반환 값으로 영역을 반환 할 수도 있습니다. 그래서 당신이 할 수있는 일은 각 픽셀을 래스터 스캔하는 것입니다 : 손이 닿지 않는 픽셀에 도달 할 때마다 그것을 어떤 색 (검정색)으로 채우고 그 영역의 영역을 픽셀 좌표와 함께 저장하고 전체 이미지가 덮히 지 않을 때까지 계속하십시오. .

결국에는 각 영역의 한 픽셀에 대한 좌표가있는 영역 세트가 생깁니다.

특정 영역을 복구해야 할 필요가 있습니다. 해당 영역을 특정 색으로 채움으로써 floodFill을 다시 사용할 수 있습니다.

관련 문제