1. labeling
-> 이미지 내의 객체마다 각각 고유한 번호를 부여하는 것
-> Connected-component labeling
-> 2-pass labeling
labeling의 예
연결된 객체의 정의
- 4 connectivity: 상하좌우
- 8 connectivity: 상하좌우 + 대각선
4-connect, 8 - connect
2. Connected Component Labeling
-> 4 connectivity 기준으로 설명.
좌우스캔, 상하스캔.
좌우스캔, 상하스캔.
Pass-1
1. 배경이 아닌 픽셀을 만나면 주위의 연결 픽셀 중 바로 위 픽셀과 왼쪽 픽셀을 검사합니다. 만약 라벨이 되어 있는 픽셀이 없다면 새로이 라벨을 부여한다. 등가 표에 새로이 번호를 추가한다.
2. 이어서 계속 스캔하다가 역시 객체 픽셀을 만났는데 이번에는 위 픽셀 혹은 왼쪽 픽셀에 라벨이 부여되어 있는 경우를 생각해보자.
만약 위 픽셀이나 왼쪽 픽셀이 동시에 라벨이 부여되어 있지 않고 한군데만 라벨이 부여되어 있다면 이번에 만난 픽셀에 그 라벨을 부여합니다. 등가 표는 조정할 필요는 없습니다. 그러나 top, left 모두 라벨 값이 존재한다면 아래의 과정으로 나누어 라벨 값을 부여한다.
a. 둘의 라벨이 같은 번호이면 이번에 만난 픽셀에도 같은 번호를 부여한다.
b. 주위 픽셀의 라벨이 다른 번호이면 가장 낮은 라벨을 이번에 만난 픽셀에 부여하고 a.b. 과정을 거친 후, 등가 표를 조정한다.
3. 모든 픽셀을 검사할 때까지 반복한다.
Pass-2
위의 등가표에서 index값을 참조해 해당픽셀 index에 true값을 대입한다.
출처 : Learning OpenCV. O'Reilly Media, Inc . Gary Bradski, Adrian Kaehler. 2008.10
'전공지식정리 > 영상처리(Image Signal Processing)' 카테고리의 다른 글
7. Hough Transform (0) | 2020.12.08 |
---|---|
6. Canny edge detector (0) | 2020.12.08 |
5 Color Model (0) | 2020.12.08 |
2. linear filtering (0) | 2020.12.08 |
1. opencv pixel access (0) | 2020.12.08 |