이진영상

컴퓨터비전/영상처리 2014. 10. 9. 21:53

이진영상이란?

영상이 백과 흑 혹은 0과 1과 같이 두 가지 값만 가진 영상을 말한다.


어떻게 화소의 명암값을 흑과 백 중의 하나로 결정할 수 있을까?

간단한 방법은 값이 크면 백으로, 작으면 흑으로 바꾸는 것이다. 하지만 크고 작고를 어떻게

구분할지에 대한 의문이 남는다. 결국 두 구간을 가르는 임계값(Threshold) T가 필요한데, 

가장 간단한 방법은 히스토그램을 분석하여 두 봉우리 사이의 계곡 지점을 T로 취하고

그것보다 큰 화소는 백(1)으로 그렇지 않는 화소는 흑(0)으로 바꾸는 것이다.

아래와 같은 수식으로 표현 가능하다.


                           


[그림 1]은 임계값을 통한 이진화 영상이다. 임계값을 50으로 설정하고

50보다 작은 화소를 갖는 값은 0으로, 50보다 큰 화소를 갖는 값은 255로 설정한 것이다. 


                               [그림 1 - 임계값을 통한 이진화]


임계값 방법은 단순한 반면 문제점이 있다. 사람의 경우 눈대중으로 대강 임계값을 설정할 수 있지만,

컴퓨터가 적절한 임계값을 찾지 못하는 것이다. 컴퓨터가 히스토그램을 보고 임계값을 대강 50으로 설정하는 것은

생각보다 쉽지 않다. [그림1]의 히스토그램에서 0과 30, 125와 175 사이의 작은 계곡이 방해 요인이 될 것이다.



오츄 알고리즘

오츄는 아주 효과적인 이진화 알고리즘을 제시했다. 임계값 t를 기준으로 화소를 두 집합으로

나누엇을 때, 각 집합의 명암 분포가 균일할수록 좋다는 점에 착안하여 균일성이 클 수록 t에게 높은 점수를 준다.

균일성은 그룹의 분산으로 측정하는데, 분산이 작을수록 균일성이 높다.

 ※ 분산이란 평균과 떨어저 있는 정도의 범위를 말한다. 따라서 분산이 크면 평균값과 많이 떨어져있는 것 이다.

가능한 모든 t에 대한 점수를 계산한 후 가장 좋은 t를 최종 임계값으로 취한다.

일종의 최적화 알고리즘(optimization algorithm)이다.


아래 수식은 오츄 알고리즘의 핵심이다. 가 목적함수 역할을 하는데, 두 분산의 가중치 합으로 정의한다.

  [수식 1]


   [수식 2]


  ,     

  ,                                           



를 최소화하는 문제는 를 최대화 하는 것과 같다. 

이에 따라 [수식 2]를 다음과 같이 바꾸어 쓸 수 있다.

 [수식 3]


 [수식 4]


          [수식 5]



1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
입력 : 영상 f(j,i), 0≤j≤M-1, 0≤i≤N-1
출력 : 이진 영상 b(j,i), 0≤j≤M-1, 0≤i≤N-1
*/
 
영상의 정규 히스토그램 h를 만든다.
[수식 5]를 이용해 초기값 w0과 u(0)을 계산한다.
 
for(j=1 to L-1) {
   [수식 5]의 순환식을 이용해 w0(t) 와 u0(t), u1(t)를 계산한다.
   [수식 4]를 계산하여 V를 계산한다.
}
 
앞의 for 루프에서 가장 큰 V(t)를 보인 t를 임계값 T로 취한다.

      

 

위 그림은 오츄 알고리즘을 적용한 이진화 결과이다.


임계값 k개를 사용하여 k+1개의 구간으로 구분하는 다중 임계값으로 적용하면 

좀더 나은 결과를 낼수 있을 것이다.



출처 : 컴퓨터비전(오일석)

'컴퓨터비전/영상처리' 카테고리의 다른 글

bilateral filter  (0) 2014.10.10
영상처리의 기본연산  (0) 2014.10.10
화소 연결성  (0) 2014.10.09
히스토그램  (0) 2014.10.09
영상처리란 무엇인가?  (0) 2014.10.09