- 히스토그램 평활화 (Histogram equalization)
- 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법
- 히스토그램 균등화, 균일화, 평탄화
- 히스토그램 평활화를 위한 변환 함수 구하기
- 히스토그램 평활화 계산 방법
- 히스토그램 평활화와 히스토그램 누적 분포 함수와의 관계
cv2.equalizeHist(src,dst=None) -> dst
• src: 입력 영상 . 그레이스케일 영상
• dst: 결과 영상
- 히스토그램 평활화 예제
import sys
import numpy as np
import cv2
src=cv2.imread('Hawkes.jpg',cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
dst=cv2.equalizeHist(src) #grayscale 영상만 받는다
cv2.imshow('src',src)
cv2.imshow('dst',dst)
cv2.waitKey()
- 히스토그램 스트레칭과 평할화 비교
- 컬러 히스토그램 평활화
- 직관적 방법: R, G, B 각 색 평면에 대해 히스토그램 평활화
- 밝기 성분에 대해서만 히스토그램 평활화 수행 (색상 성분은 불변)
- 컬러 영상의 히스토그램 평활화
import sys
import numpy as np
import cv2
#컬러 영상의 히스토그램 평활화
src=cv2.imread('field.bmp')
if src is None:
print('Image load failed!')
sys.exit()
src_ycrcb=cv2.cvtColor(src,cv2.COLOR_BGR2YCrCb)
planes=cv2.split(src_ycrcb) #3개짜리의 리스트가 됨 y,cr,cb
planes[0]=cv2.equalizeHist(planes[0]) #y
dst_ycrcb=cv2.merge(planes) #ycrcb
dst=cv2.cvtColor(dst_ycrcb,cv2.COLOR_YCrCb2BGR) #BGR
cv2.imshow('src',src)
cv2.imshow('dst',dst)
cv2.waitKey()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[19] 8)히스토그램 역투영 (0) | 2021.03.18 |
---|---|
[18] 7) 특정 색상 영역 추출 (0) | 2021.03.18 |
[16] 5) 영상의 명암비 조절 (0) | 2021.03.18 |
[15] 4) 히스토그램 분석 (0) | 2021.03.18 |
[14] 3) 컬러 영상과 색 공간 (0) | 2021.03.18 |