- 명암비(contrast)란?
- 밝은 곳과 어두운 곳 사이에 드러나는 밝기 정도의 차이
- 컨트라스트, 대비
- 기본적인 명암비 조절 함수
- 효과적인 명암비 조절 함수
- 기본적인 명암비 조절 예제
import sys
import cv2
import numpy as np
src=cv2.imread('lenna.bmp',cv2.IMREAD_GRAYSCALE)
if src is None:
print('image load failed!')
sys.exit()
alpha=0.5
dst=np.clip((1+alpha)*src - 128*alpha,0,255).astype(np.uint8)
#이 수식의 결과의 범위를 지정 #실수형으로 나오므로 int형으로 변환 필요
cv2.imshow('src',src)
cv2.imshow('dst',dst)
cv2.waitKey()
- 히스토그램 스트레칭(Histogram stretching)
- 영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법
cv2.normalize(src,dst,alpha=None,beta=None,norm_type=None,dtpye=None,maks=None) -> dst
• src: 입력 영상
• dst 결과 영상
• alpha: ( 노름 정규화인 경우 ) 목표 노름 값 , (원소 값 범위 정규화인 경우) 최솟값
• beta: ( 원소 값 범위 정규화인 경우 ) 최댓값
• norm_type: 정규화 타입 . NORM_INF, NORM_L1, NORM_L2, NORM_, NORM_MINMAX
• dtype 결과 영상의 타입
• mask: 마스크 영상
- 히스토그램 스트레칭을 이용한 명암비 자동 조절
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()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[18] 7) 특정 색상 영역 추출 (0) | 2021.03.18 |
---|---|
[17] 6) 히스토그램 평활화 (0) | 2021.03.18 |
[15] 4) 히스토그램 분석 (0) | 2021.03.18 |
[14] 3) 컬러 영상과 색 공간 (0) | 2021.03.18 |
[13] 2) 영상의 산술 및 논리 연산 (0) | 2021.03.17 |