[opencv] 영상 이진화(binarization, thresholding)
영상 이진화는 0과 1, 즉 흑과백으로만 표현한 영상이다.
이 과정을 거치면 영상이 담고 있는 객체를 배경과 분리 시킬수 있다.
이진화를 구현하기위해서는 기본RGB컬러영상에서 그레이스케일영상으로 변환이되어야한다. 이 그레이 스케일영상에서 임계값을 정하여 기준 임계값초과 하면 255, 이하면 0으로 변환한다.
이진화된 영상은 특정 사물이나 물체을 검출할 수 있으며 처리속도가 빨라 여러 분야에서 폭 넓게 사용되어진다.
Opencv의 Threshold함수를 이용하여 간단히 이진화 시킬 수 있다.
Double
cv::Threshold(CvArr* src, CvArr*
dst, double threshold, double max_Value, int threshold_type)
Src : 원본영상(그레이스케일영상), dst : 출력영상, threshold : 임계값, max_Value : 최대값, Threshold_type : 타입
- Threshold_type
1. CV_THRESHOLD_BINARY 임계값
이하 : 0, 임계값 초과 1
2. CV_THRESHOLD_INV
임계값 이하 : 1, 임계값 초과 0
3. CV_THRESHOLD_TRUNC 임계값
이하 변화없음,임계값 초과는 임계값으로
4. CV_THRESHOLD_TOZERO 임계값 초과는
그대로
5. CV_THRESHOLD_TOZERO_INV 임계값 초과는 그대로, 임계값 초과
0
6. CV_THRESH_OTSU
Otsu 방법으로 이진화 임계값을 자동을 찾아준다.
Otsu알고리즘은 적절한 임계값을 구하기 위한 알고리즘이다.
댓글
댓글 쓰기