OpenCV-Python 이미지 밝기 조정

김지수·2021년 2월 25일
1

OpenCV

목록 보기
1/9
post-thumbnail

코드

import numpy as np
import cv2

# 이미지 읽기
src = cv2.imread('파일 경로', cv2.IMREAD_COLOR)

print(src[0:10])

# 배열 생성하기
val = 100
array = np.full(src.shape, (val, val, val), dtype=np.uint8)

# 배열 더하기
add_dst = cv2.add(src, array)
# 배열 빼기
sub_dst = cv2.subtract(src, array)

# 원본, 밝기 증가, 밝기 감소 이미지 화면 출력
cv2.imshow('orig_img', src)
cv2.imshow('add_img', add_dst)
cv2.imshow('sub_img', sub_dst)

# 화면 출력창 대기/닫기
cv2.waitKey()
cv2.destroyAllWindows()

결과



설명

orig_img를 print하면 다음과 같이 [r값, g값, b값]로 이뤄진 numpy.ndarray형태로 출력된다.

[[[255 255 255][255 255 255]
[255 255 255]
...
[255 255 255][255 255 255]
[255 255 255]]
...
[[255 255 255][255 255 255]
[255 255 255]
...
[255 255 255][255 255 255]
[255 255 255]]]

이미지의 밝기를 조정하려면 배열 상에서 r값, g값, b값을 모두 더하거나 빼야하므로
해당 이미지의 배열 크기와 동일한 형태로 배열을 생성해준다.
(비율 형태로 하려면 원본 이미지의 배열에 스칼라를 곱해도 된다.)

배열을 생성한 후, 아래의 메소드를 사용하여 원본 이미지와 함께 계산한다.

cv2.add() 메소드

이미지 밝기 증가

cv2.add(src1, src2[, dst=None[, mask=None[, dtype=None]]])

ParameterDescription
src1첫 번째 영상(또는 스칼라)
src2두 번째 영상(또는 스칼라)
dst연산 결과 영상
mask마스크 영역 지정
dtype출력 영상(dst)의 타입.(cv 자료형 타입) ex) cv2.CV_8U, cv2.CV_32F, etc

Return : 이미지

cv2.subtract() 메소드

이미지 밝기 감소

cv2.subtract(src1, src2[, dst=None[, mask=None[, dtype=None]]])

ParameterDescription
src1첫 번째 영상(또는 스칼라)
src2두 번째 영상(또는 스칼라)
dst연산 결과 영상
mask마스크 영역 지정
dtype출력 영상(dst)의 타입.(cv 자료형 타입) ex) cv2.CV_8U, cv2.CV_32F, etc

Return : 이미지

profile
A Data human as a Learner, a Supporter, and a Listener

0개의 댓글