[파이썬] opencv-python 영상의 밝기 및 명암 조절

이번에는 OpenCV-Python을 사용하여 영상의 밝기와 명암을 조절하는 방법을 살펴보겠습니다. OpenCV는 이미지 및 비디오 처리를 위한 강력한 라이브러리이며, 다양한 영상 처리 작업을 수행할 수 있는 기능을 제공합니다.

밝기 조절

영상의 밝기 조절은 각 픽셀의 밝기 값을 조정하여 영상의 전체적인 밝기를 변경하는 작업입니다. OpenCV는 픽셀 값에 대한 산술 연산을 지원하여 밝기를 조절할 수 있습니다. 아래는 간단한 예제 코드입니다.

import cv2

# 영상 로드
image = cv2.imread('image.jpg')

# 밝기 조정
brightened_image = image + 50 # 각 픽셀 값에 50을 더합니다.

# 결과 출력
cv2.imshow('Original Image', image)
cv2.imshow('Brightened Image', brightened_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드에서 cv2.imread() 함수를 사용하여 이미지를 로드하고, + 연산을 통해 각 픽셀 값에 50을 더하여 밝기를 조정하였습니다. cv2.imshow() 함수를 사용하여 원본 이미지와 밝기가 조정된 이미지를 출력하고, cv2.waitKey() 함수를 사용하여 사용자의 키 입력을 대기한 후 창을 닫습니다.

명암 조절

명암 조절은 영상의 밝은 부분과 어두운 부분 사이의 컨트라스트를 조절하는 작업입니다. 이를 통해 영상의 명암을 개선하거나 특정 픽셀 값의 범위를 조절할 수 있습니다. 아래는 간단한 예제 코드입니다.

import cv2
import numpy as np

# 영상 로드
image = cv2.imread('image.jpg')

# 명암 조정
min_value = 50
max_value = 200
adjusted_image = np.clip((image - min_value) * (255 / (max_value - min_value)), 0, 255).astype(np.uint8)

# 결과 출력
cv2.imshow('Original Image', image)
cv2.imshow('Adjusted Image', adjusted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드에서 np.clip() 함수를 사용하여 픽셀 값을 특정 범위 내로 조정하고, astype() 함수를 사용하여 데이터 타입을 np.uint8로 변환하여 영상을 보정합니다. 결과적으로 결과 이미지는 밝은 부분과 어두운 부분의 명암이 개선된 이미지로 출력됩니다.

이렇게 OpenCV-Python을 사용하여 영상의 밝기와 명암을 조절할 수 있습니다. 이를 응용하여 다양한 영상 처리 작업을 수행할 수 있으며, 필요에 따라 자신만의 코드를 작성해보세요.