[컴퓨터비전 STUDY / KOCW 한동대학교 황성수 교수님 강의 Review]
히스토그램은 [0, L-1] 범위 내의 영상 Pixel의 Intensity 값 분포를 나타낸다.
h(rk)는 rk Intensity 값을 가진 pixel 개수를 의미한다.

일반적으로 bin의 개수는 256개이다.
그림으로 표현하면 다음과 같다.

각각의 components를 전체 Pixel 수로 나누어준다.
이것은 확률 함수로 간주할 수 있다.
히스토그램은 다양한 공간 도메인 처리 기술의 기초가 된다. 따라서 bins의 개수를 잘 정하는 것이 매우 중요하다.
두 경우 다 영상의 특성을 파악하기 어렵다.

Histogram equalization은 영상의 contrast를 조절하는 방법이다.
Contrast는 밝기나 색의 다른 정도로 Constrast가 높을수록 물체 식별을 더 잘할 수 있게 된다.
가장 오른쪽 그림의 Contrast가 가장 크다.

다음은 Histogram equalization의 과정이다.

다음은 Histogram equalization을 수행하는 코드이다.
int main() {
Mat image;
Mat hist_equalized_image;
Mat hist_graph;
Mat hist_equalized_graph;
image = imread("lena.png", 0);
if (!image.data) exit(1); //Check image
equalizeHist(image, hist_equalized_image); //histogram equlization 수행
hist_graph = drawHistogram(image);
hist_equalized_graph = drawHistogram(hist_equalized_image); // 계산한 histogram을 그림
imshow("Input Image", image);
imshow("Hist Equalized Image", hist_equalized_image);
imshow("Hist Graph", hist_graph);
imshow("Hist Equalized Graph", hist_equalized_graph);
waitKey(0);
return 0;
}
다음은 Histogram equalization을 수행해서 Contrast를 높인 결과이다.
