화소 처리(Point processing)
- 입력 영상의 특정 좌표 픽셀 값을 변경하여 출력 영상의 해당 좌표 픽셀 값으로 설정하는 연산이다.
밝기 조절이란?
- 영상을 전체적으로 더욱 밝거나 어둡게 만드는 연산이다.
◽ saturate 연산이란?
음수의 값은 0으로 255보다 큰 값은 255로 만들어주는 연산
✔ 영상의 밝기 조절을 위한 영상의 덧셈 연산 - cv2.add
cv2.add(src1, src2, dst=None, mask=None, dtype=None)
- src1 : (입력) 첫 번째 영상 또는 스칼라
- src2 : (입력) 두 번째 영상 또는 스칼라
- dst : (출력) 덧셈 연산의 결과 영상
- mask : 마스크 영상
- dtype : 출력 영상(dst)의 타입
(e.g.) cv2.CV_8U, cv2.CV_32F 등 - 참고사항
- 스칼라(Scalar)는 실수 값 하나 또는 실수 값 네 개로 구성된 튜플
- dst를 함수 인자로 전달하려면 dst의 크기가 src1, src2와 같아야 하며, 타입이 적절해야 한다.
💬 실습
- 그레이스케일 영상의 밝기 100만큼 증가시키기
import sys
import cv2
# 그레이스케일 영상 불러오기
src = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
dst = cv2.add(src, 100)
dst2 = src + 100
#dst = np.clip(src + 100., 0, 255).astype(np.uint8)
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.imshow('dst2', dst2)
cv2.waitKey()
import sys
import numpy as np
import cv2
# 컬러 영상 불러오기
src = cv2.imread('lenna.bmp')
if src is None:
print('Image load failed!')
sys.exit()
dst1 = cv2.add(src, (100, 100, 100, 0))
dst2 = np.clip(src + 100., 0, 255).astype(np.uint8)
cv2.imshow('src', src)
cv2.imshow('dst1', dst1)
cv2.imshow('dst2', dst2)
cv2.waitKey()
cv2.destroyAllWindows()
'OpenCV' 카테고리의 다른 글
[OpenCV with Python] 영상처리 : 컬러 영상과 색 공간 (0) | 2022.02.01 |
---|---|
[OpenCV with Python] 영상처리 : 영상의 산술 및 논리 연산 (0) | 2022.01.31 |
[OpenCV] 기초 6 : 트랙바 (0) | 2022.01.31 |
[OpenCV] 기초 5 : 키보드 이벤트/ 마우스 이벤트 (0) | 2022.01.30 |
[OpenCV] 기초 4 : 카메라와 동영상 처리 (0) | 2022.01.30 |