본문 바로가기

ComputerScience/ImageProcessing

영상처리 - 2. Histogram

728x90

Histogram은 이미지의 밝기의 분포를 그래프로 표현한 방식이다. 

Cambridgeincolor in Color

x축이 색의 intensity(빛의 세기, 밝기, 0~255) y축이 픽셀 수 이다. 히스토그램을 보면 중간정도 밝기의 픽셀이 거의 없고 완전 어둡거나 완전 밝은 픽셀들이 많은 것으로 보인다. 즉 대비가 큰 이미지 임을 유추할 수 있다.

 

즉 어두운 이미지 일수록 히스토그램이 왼쪽으로 쏠리게 된다.

https://webnautes.tistory.com/1274

아래쪽 사진이 오른쪽 사진보다 constrast가 커져서 사진이 선명해진 것을 볼 수 있다. 이렇게 histogram equalization을 거치면 명암대비를 키울 수 있다.

컬러 이미지의 경우는 R, G, B 세가지의 채널을 가지고 있기 때문에 위처럼 픽셀의 intensity를 표현할 수 있다.

for (DWORD y = 0; y < height; y++) {
	for (DWORD x = 0; x < width; x++) {
		color = m_pImage->GetPixelColor(x, y);

		m_histogramRed[color.rgbRed] += 1;
		m_histogramGreen[color.rgbGreen] += 1;
		m_histogramBlue[color.rgbBlue] += 1;

		int gray = (color.rgbRed + color.rgbBlue + color.rgbGreen) / 3;
		m_histogramGray[gray] += 1;
		}
}

R, G, B 각 색의 빈도를 나타내는 히스토그램이다.

첫번째 그림의 경우는 R가 가장 밝고 G, B는 0이 가장 많다.

Gray는 (red + green + blue) /3 이다.

728x90
반응형