영역 감지 알고리즘?

이웅희의 이미지

어떤 pixel 단위의 boolean 결과값을 받아서 이것을 인지하는 알고리즘을 개발하고 싶습니다.
첨부한 파일을 보시면 검은색으로 된 부분이 true 값인데요, 그것을 빨간색으로 된 박스로 인식하고 싶습니다.
단순히 pixel by pixel로 min, max를 생각하면 나타날수 있는 영역이 여러개이기 때문에 그렇게 되지 않는것 같습니다.
좋은 방법 없을까요?

첨부 파일파일 크기
taraconcept.jpg15.25 KB
antaran의 이미지

처음에 검은 영역 하나인줄 알고 답변을 달았다가...

지웠습니다.

질문이 검은 영역 하나인줄 알고 되지 않나요? 라고 했다가 음, 좀 이상하다 싶어 다시 글을 일고

그림을 보니, 그림 전체의 다수개의 영역이 입력될 때 상황을 말씀하신 듯 싶더군요.

좀 더 알아보고 답변을 달겠습니다. 일단 잠부터... ^^;;;

sblade의 이미지

Google 에서

connected component labeling 으로 검색해 보세요. Two-pass algorithm 이 있습니다. 파이썬같은거 쓰면 한 10줄이면 될 것 같습니다.

굳이 박스가 필요하면 각각의 connected component 에 대해 min,max 를 하시면 됩니다.

이웅희의 이미지

제가 우선 생각한 건 이런 방법인데요..

모든 픽셀에 대해 루프를 돌면서,
그 픽셀이 검정이면 동서남북으로 얼마나 검정색이 이어지는지를 확인하여 그 픽셀에 대해 경계값을 갖고 있게 합니다.
그과정이 끝난 후, 경계값 리스트를 돌면서(박스들..) 그 경계값이 겹치는 부분이 있으면 경계를 익스텐트 하는 겁니다.
지금 이렇게 작업하고 있는데 완성되면 효율을 한번 보겠습니다.

oppor의 이미지

이런걸

이런걸 원하시나요?

그림 참조.

첨부 파일파일 크기
img.PNG9.55 KB

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.