[python] 이미지 밝기 이동과 히스토그램 매칭

이미지 처리에서 이미지 밝기 조정은 중요한 작업입니다. 그 중에서도 이미지 밝기 이동과 히스토그램 매칭은 널리 사용되는 기술입니다. 이렇게 조정된 이미지는 시각적으로 더 풍부하고 선명하게 보일 수 있습니다.

이미지 밝기 이동

이미지 밝기 이동은 이미지의 픽셀 값을 일정값만큼 증가 또는 감소시켜서 밝기를 조절하는 작업입니다. 예를 들어, 모든 픽셀 값을 50만큼 증가시키면 이미지가 더 밝아집니다. 이 작업은 다음과 같은 코드로 구현할 수 있습니다.

import cv2

# 이미지 불러오기
image = cv2.imread('image.jpg')

# 밝기 이동
shifted_image = image + 50

# 결과 이미지 저장
cv2.imwrite('shifted_image.jpg', shifted_image)

위 코드에서는 OpenCV 라이브러리를 사용하여 이미지를 불러오고, 각 픽셀 값에 50을 더해 밝기를 이동시킨 후, 결과 이미지를 저장하고 있습니다.

히스토그램 매칭

히스토그램 매칭은 이미지의 히스토그램을 이용하여 이미지의 분포를 변환하는 작업입니다. 원본 이미지의 히스토그램과 목표 히스토그램을 비교하여 분포를 맞추는 것으로, 원본 이미지의 밝기 분포를 목표 분포에 가깝게 조정하여 이미지의 인식력을 개선할 수 있습니다.

히스토그램 매칭은 다음과 같이 구현할 수 있습니다.

import cv2
import numpy as np

# 원본 이미지 불러오기
source_image = cv2.imread('source_image.jpg')

# 목표 히스토그램 불러오기
target_hist = np.loadtxt('target_hist.txt')

# 원본 히스토그램 계산
source_hist = cv2.calcHist([source_image], [0], None, [256], [0, 256])

# 히스토그램 매칭
match_image = cv2.LUT(source_image, target_hist[source_image.flatten()])

# 결과 이미지 저장
cv2.imwrite('match_image.jpg', match_image)

위 코드에서는 OpenCV 라이브러리를 사용하여 원본 이미지와 목표 히스토그램을 불러오고, 원본 히스토그램을 계산한 후, 히스토그램 매칭을 수행하여 결과 이미지를 저장하고 있습니다.

결론

이미지 밝기 이동과 히스토그램 매칭은 이미지 처리에서 널리 사용되는 기술입니다. 이미지의 밝기를 이동시켜 시각적인 효과를 높이거나, 히스토그램을 매칭시켜 이미지의 분포를 개선할 수 있습니다. 위에서 소개한 코드를 활용하여 이미지 처리에 다양한 기법을 적용해 보세요!