728x90
Histogram은 이미지의 밝기의 분포를 그래프로 표현한 방식이다.
x축이 색의 intensity(빛의 세기, 밝기, 0~255) y축이 픽셀 수 이다. 히스토그램을 보면 중간정도 밝기의 픽셀이 거의 없고 완전 어둡거나 완전 밝은 픽셀들이 많은 것으로 보인다. 즉 대비가 큰 이미지 임을 유추할 수 있다.
즉 어두운 이미지 일수록 히스토그램이 왼쪽으로 쏠리게 된다.
아래쪽 사진이 오른쪽 사진보다 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
반응형
'ComputerScience > ImageProcessing' 카테고리의 다른 글
영상처리 - 6. Composition, Subtract (0) | 2021.10.12 |
---|---|
영상처리 - 5. Blur and Sharpen(with Convolution) (0) | 2021.09.24 |
영상처리 - 4. Mosaic (0) | 2021.09.17 |
영상처리 - 3. Brightness (0) | 2021.09.16 |
영상처리 - 1. 이미지의 표현 (0) | 2021.09.16 |