본문 바로가기
Edu/07. OpenCV

기본영상처리: 밝기 조절(brightness)

by Lacuna028 2021. 8. 25.

이미지 밝기 조절 

히스토그램을 그려 픽셀의 분포를 확인한 후 특정 스칼라값을 더해 밝기를 조절

 

방법 ①: 배열에 특정 스칼라값 더하기

- 단점:  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