본문 바로가기
openCV

[openCV] 히스토그램 평활화

by _eunji_ 2020. 1. 18.

Histogram

  • 히스토그램 = 도수 분포도
  • 어떠한 영상의 intensity level[0-L-1] 일 때 k번째에 해당하는 히스토그램의 값은 영상 내에 k번째 bin에 해당하는 픽셀의 숫자로 결정이 된다.
  • 히스토그램의 빈의 개수가 256개 일 때 제일 첫 번째 빈에 해당하는 값은 픽셀 값이 0인 픽셀의 개수로 결정이 된다.

3*3  영상에서  bin의 개수가 총  256 일 때 각각의 빈의 값은 특정한  픽셀 값을  가진 픽셀 수가 된다. 즉 그림에서 20의 픽셀값을 가진 픽셀 개수는 4개, 50은 2개, 120도 2개, 150은 1개이기 때문에 히스토그램은 위와 같다. 세 번째 그래프는  누적히스토그램.

  • 히스토그램은 보통 정규화를 수행한다.
  • 각각의 bin의 값을 영상을 구성하고 있는 전체 픽셀의 값으로 나눠준다.
  • 또한 확률 함수로도 표현이 가능하다. , 영상 내에 특정한 값을 가질 확률이 정규화된 히스토그램으로 표현이 된다는 뜻이다.
  • 히스토그램을 계산할 때 bin의 개수를 잘 설정하는 것이 중요하다

빈의 개수가 너무 많은 경우 특정한 빈에 해당하는 값을  0 이 되고 대부분에 빈에서 유사한 값을 띄고 있으면 영상의 특성을 반영하기 어렵다 반대로 빈의 개수가 너무 적으도 영상의 특성을 반영하기 어렵기 때문에 적당한 수의 빈 설정이 중요하다 .

 

Histogram equalization 히스토그램 평활화

  • 일종의 전처리 방법, 영상의 contrast를 조절하는 방법
  • Contrast : 밝기 혹은 색깔의 차이를 의미하고 contrast가 높을수록 영상 내의 물체를 식별하기가 편하다. contrast가 높은 것이 일반적으로 좋은 영상이다.

그림을 보면 네번째 영상이 제일  contrast 가 높기 때문에 가장 좋은 영상이다 .  히스토그램을 계산해보면  첫 번째  영상은 어둡기 때문에 픽셀들이 어두운 영역에 분포하고 있고  두 번째  영상은 밝은 영역에 분포 ,  세번째 영상은 회색조를 띄고 있기  때문에   128  근처에 분포하고 있고 마지막 영상은 픽셀들이 상대적 골고루 분포하고 있다 .

 

히스토그램 평활화 방법

입력영상이 주어졌을 때  1.  히스토그램을 계산하고  2.  히스토그램을 토대로 평활화할 수 있는 함수를 통해 히스토그램 평활화  3. mapping 함수를 활용한  intenstity transformation 을 수행함으로써 결과 영상을 도출
영상의 픽셀들이 균등하게 분포하는 것이 타당한 경우에만 히스토그램 평활화가 가능하다.

 

 

출처 - 컴퓨터 비전 한동대학교 황성수

 http://www.kocw.net/home/cview.do?cid=1b1f5b73413060b5

'openCV' 카테고리의 다른 글

[openCV] 컬러영상 처리  (0) 2020.01.18
[openCV] 공간 도메인 필터링  (0) 2020.01.18
[openCV] 밝기 값 변환  (1) 2020.01.18
[openCV] 메모리 관리 및 픽셀 엑세스  (0) 2020.01.11
[openCV] Drawing함수  (0) 2020.01.11

댓글