영상의 히스토그램이 그레이스케일 전 구간에서 골고루 나타나도록 변경하는 선형 변환 기법이다. 보통 명암비가 낮은 영상은 히스토그램이 특정 구간에 집중되어 나타나게 되는데, 마치 고무줄을 늘이듯이 히스토그램을 잡아 펼쳐서 그레이스케일 전 구간에서 히스토그램 그래프가 나타나도록 변환하는 기법이 히스토그램 스트레칭이다. 결과적으로 히스토그램 스트레칭을 수행한 영상은 명암비가 높아져서 일반적으로 보기 좋은 사진 형태로 바뀌게 된다.
OpenCV에서는 nomalize 는 함수를 제공한다.
#OpenCV
/*
src : 입력 영상
dst : 결과 영상
alpha : 노름 정규화인 경우 목표 노름값, 원소 값 범위 정규화인 경우 최솟값
beta : 원소 값 범위 정규화인 경우 최댓값
norm_type : 정규화 타입. NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX.
dtype : 결과 영상의 타입
mask : 마스크 영상
*/
cv2.normalize(src, dst, alpha=None, beta=None, norm_type=None, dtype=None, mask=None) -> dst
#OpenCV USAGE
dst = cv2.normalize(src, None, 0, 255, cv2.NORM_MINMAX)
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()
gmin, gmax, _, _ = cv2.minMaxLoc(src)
dst = cv2.normalize(src, None, 0, 255, cv2.NORM_MINMAX)
#dst = ((src - gmin) * 255. / (gmax - gmin)).astype(np.uint8)
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
특정 색상 영역 추출 하기 (0) | 2021.05.25 |
---|---|
히스토그램 평활화(Histogram equalization) (0) | 2021.05.25 |
영상의 명암비(Contrast) 조절 (0) | 2021.05.25 |
히스토그램 분석 (0) | 2021.05.25 |
컬러 영상과 색 공간 (0) | 2021.05.25 |
댓글 영역