[OpenCV 3.2] Labeling (레이블링, 라벨링)
1. 레이블링이란?
이진화 한 이미지에서 형체를 알아보기 위해 같은 픽셀 값들끼리 그룹화하여 번호를 매긴 것을 레이블링이라고 한다.
레이블링은 크게 4방향과 8방향으로 나누어진다.
4방향은 한 픽셀을 중심으로 좌우상하로 인접한 픽셀을 그룹화하고, 8방향은 좌우상하에 대각선4방향과 인접한 픽셀을 그룹화한다.
|
|
|
|
|
1 |
|
|
2 |
2 |
|
|
1 |
|
|
2 |
|
|
3 |
|
|
|
|
|
3 |
3 |
|
|
|
|
|
|
|
|
4 |
5 |
5 |
|
6 |
6 |
|
4 |
|
|
7 |
|
6 |
|
|
4방향 레이블링
|
|
|
|
| 1 |
|
| 2 | 2 |
|
| 1 |
|
| 2 |
|
| 1 |
|
|
|
|
| 1 | 1 |
|
|
|
|
|
|
|
| 3 |
4 | 4 |
| 4 | 4 |
| 3 |
|
| 4 |
| 4 |
|
|
8방향 레이블링
2. 소스 코드
int cv::connectedComponentsWithStats ( InputArray image, OutputArray labels, OutputArray stats, OutputArray centroids, int connectivity = 8, int ltype = CV_32S )
1) image : 레이블링할 이미지
2) labels : 레이블링한 결과 이미지
3) stats : 레이블링 된 이미지 배열
4) centroids : 레이블링 된 이미지의 중심좌표
소스 코드 참조 : http://webnautes.tistory.com/823
3. 실행 결과
컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.
전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.
추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^
- 푸어맨
[Reference]
(스텍 레이블링) http://devmonster.tistory.com/22
(십자 모양 레이블링) http://webnautes.tistory.com/823
(OpenCV 레이블링 함수) http://lab.deepaivision.com/2015/04/opencv-30-blob-or-labeling-algorithm.html
'Programming > OpenCV' 카테고리의 다른 글
[OpenCV 3.2] Detect Rectangle (사각형 검출) (3) | 2017.02.06 |
---|---|
[OpenCV 3.2] Harris Corner Detector - 모서리 검출 알고리즘 (2) | 2017.02.02 |
[OpenCV 3.2] Canny Edge Detector - 가장자리 검출 알고리즘 (2) | 2017.01.31 |
[OpenCV 3.2] Histograms - 4 : Histogram Equalization (평활화) (0) | 2017.01.30 |
[OpenCV 3.2] Histograms - 3 : Histogram Equalization (평활화) (1) | 2017.01.29 |