[영상처리 - 영상 분할]
영상 분할(Image segmentation)
영상의 이진화(Binarization)
영상의 픽셀 값을 0 또는 255로 만드는 연산
비관심 영역과 관심영역을 구분 짓는 지표가 된다.
T는 0과 255로 나누기 위한 임계값
반복적 방법을 통하여 이진화 임계값을 결정한다.
- 영상 로딩
- 정규 히스토그램 계산
- 임계값 계산
- 임계값 적용
- 결과 출력
임계값을 계속 수정해 나아가면서 적절한 T(임계값)값을 찾는다.
[코드]
binmask.at(y, x) = (image.at(y, x) < thresh) ? 0 : 255;
#영상을 돌면서 thresh값에 대하여 이진화를 시킨다.
void Histogram(Mat img, float histo[GRAYSCALE])
Mat ThresholdIterative(Mat image, int* thresh)
#반복 Threshold경우 Histogram함수를 이용하여 적절한 임계값을 찾은 후에 적용한다.
레이블링 기법
등가 테이블(equivalent table)을 만들면서 영상을 두번 스캔 함으로써 레이블링을 수행
첫 번째 스캔 : 레이블을 전파 시키면서 등가 테이블을 만든다.
두 번째 스캔 : 등가 테이블을 참조하여 픽셀에 고유 레이블 부여
- 영상로딩
- 첫 번째 스캔 - 레이블링
- 두 번째 스캔 - 등가 테이블 처리
- 결과 출력
외각선 추적(Contour tracing)
객체의 외각선을 따라 이동하는 기법
객체의 경계선 추적(boundary tracing)이라고도 함