2016-07-11 2 views
1

에서 "둘러싸인"영역을 감지하면 흰색과 검은 색 영역이있는 B/W (바이너리) 이미지가 나타납니다. 이제는 흰색으로 완전히 둘러싸인 blacj 영역을 찾고 floodfill하고 Image 테두리는 건드리지 않으려합니다.이진 이미지

"brute-force"접근법은 기본적으로 모든 픽셀 (모든 "경계선"행/열 제외)을 반복하며, 검은 색을 발견하면 이웃을 봅니다 (" 방문했다 ") 그리고 그들이 흑인이라면 재귀 적으로 이웃들에게 가야한다. 그리고 만약 내가 하얀 픽셀 만 쳐서 국경에서 끝나지 않으면 나는이 지역을 채운다. 고해상도 이미지의 경우 시간이 오래 걸릴 수 있습니다.

이렇게 복잡하지 않은 빠른 방법이 있습니까? 감사합니다.

답변

0

이진 이미지를 사용하면 검정색 구성 요소에 연결된 구성 요소 레이블을 지정할 수 있습니다. 발견 된 모든 구성 요소는 흰색으로 둘러 쌓여 있습니다. 그런 다음 테두리를 따라 이동하는 구성 요소를 찾기 위해 테두리를 따라 이동 한 다음 삭제합니다.

다른 간단하고 빠른 해결책은 테두리를 따라 가야하며 검정 픽셀을 찾으면 원래 픽셀을 터치하는 모든 검은 픽셀이 흰색이 될 때까지 확장되는 시드를 설정합니다. 그러면 테두리를 터치하는 검정색 픽셀이 모두 삭제됩니다. 경계선을 만지지 않는 검은 색 구성 요소 만 남아 있습니다.

+1

안녕하세요, 아이디어를 제공해 주셔서 감사합니다. 두 번째 제안을 사용했는데 완벽하게 작동했습니다. – user6576329

0

대부분 검은 색 영역이 테두리에 닿지 않으면 역순으로 처리하는 것이 더 빠르지 만 (똑같이 복잡합니다).

경계에서 모든 도달 가능한 픽셀 (검은 색 픽셀을 통해 경계까지 도달 할 수있는 도달 가능한 의미)을 표시합니다. 이 후 전체 이미지를 전달하십시오. 검은 색이거나 방문하지 않은 것은 둘러싸인 지역이됩니다.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 내가 정확히 이해했다면, 당신의 대답은 FiReTiT의 두 번째 제안과 유사합니다. 둘 다 솔루션으로 표시 하겠지만, 하나만 작동하고 아직 업 보턴을 사용할 수 없습니다! – user6576329

관련 문제