히스토그램 평활화

매일 공부(ML)·2021년 11월 18일
0

OPEN CV

목록 보기
12/45

히스토그램 평활화

히스토그램 평활화(Histogram equalization)

  • 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타내게 변경하는 명암비 향상 기법

  • 히스토그램 균등화, 균일화, 평탄화

변환 함수 구하기

  • 히스토그램 함수 구하기 :
  • 정규화된 히스토그램 함수 구하기:

  • 누적 분포 함수(cdf)구하기:

  • 변환함수: dst(x,y) = round(cdf(src(x,y)) * Lmax)

히스토그램 평활화 계산 방법

히스토그램 평활화와 히스토그램 누적 분포 함수와의 관계

히스토그램 평활화

cv2.equalizeHist(src, dst=None) -> dst
  • src: 입력영상. 그레이스케일 영상

  • dst: 결과 영상

히스토그램 평활화 예제

src = cv2.imread('Hawkes.jpg', cv2.IMREAD_GRAYSCALE)

dst = cv2.equalizeHist(src)

히스토그램 스트레칭과 평활화 비교

컬러 영상의 히스토그램 평활화

  • 컬러 히스토그램 평활화

    	- 직관적인 방법: R,G,B 각 색 평면에 대해 히스토그램 평활화

  • Code of 컬러 영상의 히스토그램 평활화

src = cv2.imread('field.bmp')

src_ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)
ycrcb_planes = cv2.split(src_ycrcb)

# 밝기 성분에 대해서만 히스토그램 평활화 수행
ycrcb_planes[0] = cv2.equalizeHist(ycrcb_planes[0])

dst_ycrcb = cv2.merge(ycrcb_planes)
dst = cv2.cvtColor(dst_ycrcb, cv2.COLOR_YCrCb2BGR)

profile
성장을 도울 아카이빙 블로그

0개의 댓글