히스토그램 평활화란 명암 값의 분포가 한쪽으로 치우친 영상이 있을 때,
명암값을 고르게 분포시켜주기 위한 처리 방법을 말한다. 예를 들어, 어두운영역에서 세밀한 영상이 있을 때 히스토그램평활화를 이용하면 보다 밝은 영상으로 세밀한 부분을 볼 수 있을 것이다.
히스토그램 평활화는 다음의 단계를 거친다.
- 그림의 히스토그램을 구한다.
- 히스토그램의 누적 히스토그램의 구하고 정규화 한다.
- 이미지에 정규화된 누적 히스토그램의 값을 적용한다.
위 기능을 구현할 수 있는 함수를 정의하자. 헤더파일 선언부는 생략하겠다.
ImageProc.cpp
위는 단일 채널에서만 가능한 함수이므로, 칼라이미지에서 평활화 가능한 함수를 정의한다.
ImageProc.cpp
이벤트 처리기를 정의하자. 그전에 SetDrawImage 를 아래와 같이 수정한다.
수정하는 이유는 기존에 흑백이미지만 오른쪽 화면에 나올 수 있는데, 이제 칼라이미지도 나올 수 있게
하기 위해서 이다.
ImageProcessingView.cpp
이벤트 처리기를 단다.
ImageProcessingDoc.cpp
실행하면 다음과 같이 이미지의 명암이 고루 분포된다.