영상의 히스토그램이 bimodal이고, 전경&배경 픽셀 분포가 비슷하다면?
Bimodal distribution은 통계학에서 서로 다른 두 개의 최빈값을 갖는 연속확률분포이다. 아래 그림에서처럼 두 개의 극대값이 있는 확률분포함수 그래프를 나타낸다.
히스토그램이 bimodal이지만, 전경&배경 픽셀 분포가 크게 다르다면?
입력 영상이 배경(background)과 객체(object) 두 개로 구성되어 있다고 가정 → bimodal histogram
임의의 임계값 T에 의해 나눠지는 두 픽셀 분포 그룹의 분산이 최소가 되는 T를 선택
일종의 최적화 알고리즘(optimization algorithm)
Within-class variance
다만, 위 input에 해당하는 T에 대해서 0부터 255까지 모두 스캔해야 하므로 시간이 오래 걸린다는 단점이 있다.
Otsu 임계값
- : 'arguments of min' 이라는 뜻이다. 즉, 어떤 함수를 최소로 만드는 정의역의 점들, elements 혹은 매개변수를 말한다.
따라서, 분산이 최소가 되게끔 하는 t의 값을 의미한다.
극복방법 : Within-class variance 최소화 & Between-class variance 최대화
모든 t값에 대해 𝜎²𝐵𝑖𝑡𝑤𝑒𝑒𝑛(𝑡)를 구하여 최적의 T를 선택한다. 이는 시간이 느리다는 단점이 있다.
따라서, recursion을 이용하여 효율적으로 계산하면 속도가 빨라질 것이다. 즉, 이전 가중치 를 이용하여 연산 속도를 개선한다.
src = cv2.imread('rice.png', cv2.IMREAD_GRAYSCALE)
th, dst = cv2.threshold(src, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
print("otsu's threshold:", th)
otsu's threshold: 131.0
dst에서 하단에 이진화가 제대로 이루어지지 않는 모습이 보인다. 이 부분까지 이진화를 잘 하는 방법은 다음 시간에 배우도록 하자.