강몬드의 프로그래밍 이야기

히스토그램 본문

학습/컴퓨터비젼

히스토그램

강몬드 2015. 4. 28. 17:15

- 히스토그램 계산 

히스토그램이란 영상의 명암값이 나타난 빈도수로, 영상에서 각각의 명암값이 몇 번 나타나는지 표시한다. 


명암 영상에서 히스토그램 계산

|식|

 h(i) = |{(j,i)| img(j,i) = i}|

^h(i) = h(i) / (M X N)

|히스토그램 슈도 코드|

for(i= 0 to 255)  

h(i) = 0;         //초기화


for(j= 0 to img.height)

 for(i= 0 to img.width)

h( img(j,i))++;    // 화소 각각에 대해 그곳 명암값에 해당하는 히스토그램 칸 1씩 증가


for(i= 0 to 255)

^h = h(i)/(img.width*img.height); //정규화


- 히스토그램 용도 

- 영상의 특성 파악

  사진과 같이 히스토그램이 왼쪽으로 치우처져 있으면 어두운 영상임을 알 수 있다.

 

명암값이 균등한 영상


 어두운 영상


- 영상의 품질 개선

히스토그램 조작을 통한 영상 품질 개선이 가능하다. 대표적인 연산은 히스토그램 평활화가 있다. 영상의 히스토그램을 평평하게 만들어 영상이 사용하는 명암의 범위를 늘리고 이전보다 선명해지게 한다. 



히스토그램 평활화를 통해 품질 향상된 예


       

히스토그램 평활화 후 영상 품질 하향된 예


향상이 된 예와 그렇지 않은 영상 두가지 예를 볼 수 있다. 이처럼 적용하는 연산이 상황과 목적에 따라 품질 개선에 공헌할 수도 그 반대일 수도 있으니 사용 목적에 따라 활용을 해야 한다. 


 





 

Comments