본문 바로가기

카테고리 없음

4/11~4/22 :: 히스토그램 균일화 중 CLAHE 기법 구상

train data 선명하게 위한 용도로 고안

 

import cv2
import numpy as np
import matplotlib.pyplot as plt

# CLAHE 적용 (histo_clahe.py)

# 이미지 읽어서 YUV 컬러스페이스로 변경
image_path = r'C:\Users\kimdo\바탕 화면\AI Lab\cv-competition\data\test/'

file_name = '00c0dabb63ca7a16'
imgae_name = image_path + file_name + '.jpg'

image_ar = np.fromfile(imgae_name, np.uint8)
image = cv2.imdecode(image_ar, cv2.IMREAD_UNCHANGED)
img_yuv = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)

# 밝기 채널에 대해서 이퀄라이즈 적용
img_eq = img_yuv.copy()
img_eq[:, :, 0] = cv2.equalizeHist(img_eq[:, :, 0])
img_eq = cv2.cvtColor(img_eq, cv2.COLOR_YUV2BGR)

# 밝기 채널에 대해서 CLAHE 적용
img_clahe = img_yuv.copy()
clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8, 8))  # CLAHE 생성
img_clahe[:, :, 0] = clahe.apply(img_clahe[:, :, 0])  # CLAHE 적용
img_clahe = cv2.cvtColor(img_clahe, cv2.COLOR_YUV2BGR)

# 결과 이미지 표시
plt.figure(figsize=(10, 5))

# 원본 이미지
plt.subplot(1, 2, 1)
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title('Original Image')
plt.axis('off')

# CLAHE 적용된 이미지
plt.subplot(1, 2, 2)
plt.imshow(cv2.cvtColor(img_clahe, cv2.COLOR_BGR2RGB))
plt.title('CLAHE Image')
plt.axis('off')

plt.show()