Notice
Recent Posts
Recent Comments
Link
Koo's.Co
[OpenCV] 히스토그램 평활화(Histogram Equalization) 본문
1. 히스토그램 평활화(Histogram Equalization)
- 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법
- 히스토그램 균등화, 균일화, 평탄화라고도 한다
- 누적함수를 이용해 입력 영상의 명암비를 조절
픽셀의 히스토그램 분포를 보면
기존 이미지는 좁게 분포해있지만 stretching과 equalization을 적용한 픽셀의 분포는 넓게 분포한 것을 알 수 있다.
stretching은 넓어지는 범위가 일정한 반면, equalization은 cdf를 사용하기 때문에 분포에서 값이 뭉쳐있는 범위가 더 넓게 퍼지게 된 것을 확인할 수 있다.
2. 컬러 영상 Histogram Equalization
BGR 색상 영역에서 split을 한 후 equalization을 적용하면 색의 왜곡이 발생할 수 있다.
컬러 영상에 equalization을 적용하기 위해서는 YCrCb 색상 영역으로 바꾼 후에 Y(휘도, 색상)에 equalization을 적용하면 색의 왜곡없이 contrast를 줄 수 있다.
import cv2
import sys
src = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
if src is None:
print('Image load failed')
sys.exit()
src_ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)
planes = cv2.split(src_ycrcb)
y_equalization = cv2.equalization(planes[0])
dst = cv2.merage([y_equalization, planes[1], planes[2])
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
'Python > 영상처리' 카테고리의 다른 글
필터링 (0) | 2023.01.05 |
---|---|
[OpenCV] 히스토그램 분석 (0) | 2023.01.05 |
[OpenCV] 명암비 조절 (0) | 2023.01.05 |
[OpenCV] 컬러 영상 기본 함수 (0) | 2023.01.04 |
[OpenCV] 산술 연산 (0) | 2023.01.04 |
Comments