현재 이미지 처리 프로젝트를 진행 중입니다. 저는 VC++에서 Opencv2.3.1을 사용하고 있습니다. 필자는 입력 이미지가 파란색으로 만 필터링되고 이진 이미지로 변환되도록 코드를 작성했습니다. 바이너리 이미지에는 원하지 않는 작은 오브젝트가 있습니다. 그 작은 객체를 제거하고 싶었 기 때문에 openCV의 cvFindContours()
메서드를 사용하여 이진 이미지의 윤곽선을 감지했습니다. 하지만 문제는 이미지 출력에서 작은 객체를 제거 할 수 없다는 것입니다. cvContourArea()
기능을 사용했지만 제대로 작동하지 않았습니다 .. 침식 기능도 제대로 작동하지 않았습니다.Contours opencv : 이진 이미지에서 작은 윤곽을 제거하는 방법
그래서 누군가가 ..이 문제 좀 도와주세요
내가을 얻은 바이너리 이미지 :
내가이 가져올 결과/출력 이미지 :
제안 해 주셔서 감사합니다. 그러나 발견 된 각 얼룩/등고선의 영역을 찾는 코드를 작성하는 방법에 익숙하지 않습니다. 필자가 작성한 코드는 다음 링크에 있습니다. 제발 그것을 수정하고 회신 해주십시오. http://textuploader.com/?p=6&id=YwRl. –
오! 방금 잊어 버린 cvutility 헤더와 cpp 파일은 다음 링크에서 찾을 수 있습니다. http : //textuploader.com/? p = 6 & id = Dtnvj http://textuploader.com/?p=6&id=TSlRQ 소스 디렉토리 및 포함 경로. –
저는 C API에 익숙하지 않지만 첫 번째 컨투어의 면적을 계산하는 것처럼 보입니다. 윤곽선을 따라 반복하고 영역> 약간 임계 값으로 그려야합니다. 하나의 오브젝트를 찾으려는 경우 가장 큰 영역으로 윤곽선을 그려야합니다. – fferen