728x90
반응형
명암비(contrast)
- 밝은 곳과 어두운 곳 사이에 드러나는 밝기 정도의 차이

기본적인 명암비 조절 함수

s를 0.5로 두었을 때 픽셀의 최대값이 128로 낮아지며 영상이 어두워짐
s를 2로 두었을 때 픽셀의 최대값은 255으로 같지만 전체적으로 포화되는 부분이 많아짐
효과적인 명암비 조절 함수

위 함수를 통해 어느 한 쪽의 색으로 치우치지 않고 균일하게 명암비를 조절할 수 있다.
* 명확히 정해진 명암비 조절 함수는 없고 내가 알맞게 조절하여 사용해야 함.
기본적인 명암비 조절 예제
src = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSACLE)
alpha = 1.0
dst = np.clip((1+alpha)*src - 128*alpha, 0, 255).astype(np.uint8)
* np.clip -> saturate 역할
- 실행 결과 :

영상의 자동 명암비 조절
히스토그램 스트레칭(Histogram stretching)
- 영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법

정규화 함수
cv2.normalize(src, dst, alpha=None, beta=None, norm_type=None, dtype=None, mask=None) -> dst
- src : 입력 영상
- dst : 결과 영상 (None 넣어주면 됨)
- alpha : (노름 정규화인 경우) 목표 노름 값 / (원소 값 범위 정규화인 경우) 최솟값
- beta : (원소 값 범위 정규화인 경우) 최댓값
- norm_type : 정규화 타입. NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX
- dtype : 결과 영상의 타입
- mask : 마스크 영상
히스토그램 스트레칭을 이용한 명암비 자동 조절
src = cv2.imread('Hawkes.jpg', cv2.IMREAD_GRAYSCALE)
dst = cv2.normalize(src, None, 0, 255, cv2.NORM_MINMAX)

- src, dst의 히스토그램 확인
def getGrayHistImage(hist):
imgHist = np.full((100, 256), 255, dtype=np.uint8)
histMax = np.max(hist)
for x in range(256):
pt1 = (x, 100)
pt2 = (x, 100 - int(hist[x, 0] * 100 / histMax))
cv2.line(imgHist, pt1, pt2, 0)
return imgHist
hist1 = cv2.calcHist([src], [0], None, [256], [0, 256])
histImg1 = getGrayHistImage(hist1)
hist2 = cv2.calcHist([dst], [0], None, [256], [0, 256])
histImg2 = getGrayHistImage(hist2)
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.imshow('histImg1', histImg1)
cv2.imshow('histImg2', histImg2)

히스토그램 스트레칭 변환함수
- 변환 함수 직선의 방정식 구하기


src = cv2.imread('Hawkes.jpg', cv2.IMREAD_GRAYSCALE)
gmin, gmax, _, _ = cv2.minMaxLoc(src)
dst = ((src - gmin) * 255. / (gmax - gmin)).astype(np.uint8)

728x90
반응형
'OpenCV' 카테고리의 다른 글
| OpenCV 영상처리 - 특정 색상 영역 추출(cv2.inRange) (0) | 2024.03.18 |
|---|---|
| OpenCV 영상처리 - 히스토그램 평활화(cv2.equalizeHist) (0) | 2024.03.18 |
| OpenCV 영상처리 - 히스토그램 분석(cv2.calcHist) (0) | 2024.03.18 |
| OpenCV 영상처리 - 컬러 영상과 색 공간 (0) | 2024.03.18 |
| OpenCV 영상처리 - 산술 및 논리 연산 (0) | 2024.03.18 |