[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알고리즘은 적절한 임계값을 구하기 위한 알고리즘이다.






]

댓글

가장 많이 본 글