이미지 밝기 조절
히스토그램을 그려 픽셀의 분포를 확인한 후 특정 스칼라값을 더해 밝기를 조절
방법 ①: 배열에 특정 스칼라값 더하기
- 단점: uint8의 경우 255값을 넘어가거나 0보다 작아지는 경우 0~255 범위값으로 다시 돌아가는 특성이 있어 오히려 더 어두워지거나 밝아질 수 있다.
(예로 들어 0에서 -1을 빼면 -1값이 아닌 255값이 출력되고, 255에서 1을 더하면 2565이 아닌 0이 출력된다.)
방법 ②: add함수 사용
- 가장 쉽게 이미지 밝기 조절하는 방법
- 사용법:
import cv2 import numpy as np src = cv2.imread('images/penguin.jpg', cv2.IMREAD_GRAYSCALE) # src에 100 더해 이미지 밝게 변환 dest1 = cv2.add(src, 100) # src에 -100을 더해 이미지 어둡게 변환 dest2 = cv2.add(src, -100)
- 단점:
1) 픽셀값은 0 ~ 255 사이의 값인데 해당 범위를 벗어나는 경우가 발생
방법 ③: clip함수 사용
- 기본 배열에 스칼라값을 더하는 경우의 단점, add 함수의 단점 보완
- 값의 범위를 지정해줌으로써 해당 픽셀값이 범위를 벗어나지 않게 해줌
- 값의 범위를 지정해줌으로써 uint8의 한계를 보완
- 사용법
import cv2 import numpy as np src = cv2.imread('images/penguin.jpg', cv2.IMREAD_GRAYSCALE) # 원본 이미지에서 150을 뺌. 범위는 0~ 255로 지정. 이미지 타입은 uint8로 지정 result2 = np.clip(src-150.0, 0, 255).astype("uint8")
'Edu > 07. OpenCV' 카테고리의 다른 글
이미지 색공간 변환: cvtColor (0) | 2021.08.27 |
---|---|
기본영상처리: 명암대비(contrast) (0) | 2021.08.25 |
openCV 개요 (0) | 2021.08.25 |