300x250
Histogram Equalization은 이미지의 픽셀이 특정 범위 값 주변에 분포해 있을 때, 양쪽 끝으로 히스토그램을 펼쳐서 Contrast 조정하는 방법이다.
예제는 이미지를 histogram equlization을 사용해서 Contrast 조정을 했고, 히스토그램 그래프를 보면 어두운 부분과 밝은 부분이 고르게 분포되어 있는 것을 확인할 수 있다. 이미지에 따라서 histogram equalization 후 품질 저하가 발생할 수 있는데, 이미지 전체의 누적 히스토그램을 평활화하면서 특정 색 범위가 훼손되는 경우이다. 대안으로, 이미지를 여러 개의 블록으로 나누고(8x8), 각 블록 별로 histogram equalization을 사용하는 방법을 적용하면, Histogram Equalization에 비해서 자연스러운 변환이 이뤄진 것을 확인할 수 있다. 전체적으로 히스토그램이 고르게 펼쳐지지는 않지만, 원본 픽셀 범위 주변으로 펼쳐지면서 품질 저하를 방지할 수 있다.
* 학습용 이미지의 Data Augmentation을 위한 CLAHE 적용
import cv2 import numpy as np from matplotlib import pyplot as plt image = cv2.imread("src.jpg", cv2.IMREAD_GRAYSCALE) equ_image = cv2.equalizeHist(image) clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) clahe_image = clahe.apply(image) |
300x250
'Image Processing' 카테고리의 다른 글
Image Brightness and Contrast 변경 (0) | 2020.10.14 |
---|---|
image gamma 값 조정 (gamma correction) (0) | 2020.10.14 |
Image Blur/Smoothing/Gaussian Blur/Median Blur/Bilateral Filter/Motion Blur (0) | 2020.10.13 |
Invert Image color / Invert Image lightness (python opencv) (0) | 2020.10.08 |
PyCharm + OpenCV 환경 구성 (설치) (1) | 2019.06.26 |