(docs.opencv.org 참조)
히스토그램은 이미지의 픽셀 크기별 분포를 그래픽으로 나타낼 수 있습니다. 히스토그램의 X축은 픽셀의 크기(Gray Image: 0~255)를 나타내며 Y축은 영상의 픽셀 수를 나타냅니다. 픽셀 수가 많을수록 특정 밝기 레벨의 피크가 더 높습니다. 히스토그램 균등화(평활화) Histogram Equalization(HE)는 이미지의 대조를 향상시키는데 사용되는 이미지 처리 기술입니다. 이는 가장 빈번한 픽셀값을 효과적으로 펼침으로써, 이미지의 밝기 범위를 확장함으로써 개선 효과를 얻을 수 있습니다. 이를 통해 낮은 국소 대조도의 영역이 더 높은 대조도를 얻을 수 있습니다.
위 그림에서처럼 픽셀값이 특정 범위의 값으로만 제한되는 이미지를 생각해 볼 수 있습니다. 예를 들어, 밝은 이미지는 모든 픽셀이 높은 값으로 제한됩니다. 그러나 좋은 이미지는 이미지의 모든 영역에서 픽셀값을 가질 것입니다. 따라서 이 히스토그램을 양 끝까지 늘려야 이미지의 대비를 향상시킵니다. 이 원리를 활용한 이미지 개선 방법이 히스토그램 평활화 기술입니다. 칼라 히스토그램 평활화는 이미지의 색상 균형에 극적인 변화를 초래하기 때문에 이미지의 빨간색, 녹색 및 파란색 성분에 별도로 적용할 수 없습니다. 그러나 이미지를 HSL/HSV 색 공간과 같은 다른 색 공간으로 먼저 변환 후, 이미지의 색상 및 채도를 변경하지 않고 휘도값에 적용할 수 있습니다.
Adaptive Histogram Equalization
적응적 히스토그램 평활화(Adaptive Histogram Equalization)는 말 그대로 적응적, 국소적으로 이미지 밝기를 변환한다는 점에서 일반적인 히스토그램 평활화는 다르며, 로컬 대비를 개선하고 영상의 각 영역에서 에지의 정의를 강화하는데 적합합니다.
적응적 히스토그램 평활화의 한 방법으로 CLAHE(Contrast Limited Adaptive HE)가 있습니다. CLAHE의 경우, 이미지 대비 제한 과정은 국소적으로 영역을 분할하여 적용하며 일반적인 히스토그램 균등화가 야기할 수 있는 노이즈의 과증폭을 방지하기 위해 개발되었습니다. 아래 첫번째 이미지는 원본 이미지이며, 두번째 이미지는 일반적 히스토그램 균등화(Histogram Equalization) 결과, 세번째는 CLAHE 결과를 나타냅니다. 일반 히스토그램 균등화에서 발생할 수 있는 밝기 포화 Saturation를 CLAHE를 통해 개선할 수 있습니다.
OpenCV에서 createCLAHE 함수로 제공 됩니다. 아래는 Python Code 예입니다.
import cv2 as cv
img = cv.imread('input_img.jpg', cv.IMREAD_GRAYSCALE)
clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
cl1 = clahe.apply(img)
cv.imwrite('output_img.jpg',cl1)
'영상처리 기술' 카테고리의 다른 글
칼라처리와 특징 Color Processing - RGB, CMY, HSI (2) | 2023.12.03 |
---|---|
패턴 정합 Pattern Matching Method ( Template Matching ) (0) | 2017.12.06 |
영상처리 시스템 Image Processing System (0) | 2017.05.04 |
영상처리 Image Processing 란? (0) | 2017.05.03 |