OpenCV

[OpenCV] 이미지 처리 (자동보정)

괜찮나요닝겐 2024. 8. 17. 20:24
728x90
반응형

오늘은 이미지 처리방법 중에서 자동보정하는 여러 방법들을 사용해보자.

오늘 해볼것은 히스토그램 평활화 (Histogram Equalization), CLAHE (Contrast Limited Adaptive Histogram Equalization), Gaussian Blur and Sharpening, Brightness and Contrast Adjustment이다. 

  • 히스토그램 평활화: 이미지의 명암비를 개선하여 더 잘 보이게 만드는 기법
import cv2

# 이미지 읽기
image = cv2.imread('/my_dir/image.jpg', 0)  # 그레이스케일로 이미지 읽기

# 히스토그램 평활화
equalized_image = cv2.equalizeHist(image)

# 결과 저장 및 보기
cv2.imwrite('/my_dir/equalized_image.jpg', equalized_image)
cv2.imshow('Equalized Image', equalized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

  • CLAHE: 히스토그램 평활화의 개선된 버전으로, 지역 대비를 향상시켜 더 자연스럽게 해준다.
import cv2

# 이미지 읽기
image = cv2.imread('/my_dir/image.jpg') 

# CLAHE 적용
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
clahe_image = clahe.apply(image)

# 결과 저장 및 보기
cv2.imwrite('/my_dir/clahe_image.jpg', clahe_image)
cv2.imshow('CLAHE Image', clahe_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

  • Gaussian Blur and Sharpening: 이미지의 잡음을 줄이고 선명도를 높이는 데 사용
import cv2
import numpy as np

# 이미지 읽기
image = cv2.imread('/my_dir/image.jpg')

# 가우시안 블러 적용
blurred = cv2.GaussianBlur(image, (5, 5), 0)

# 샤프닝 커널 적용
sharpening_kernel = np.array([[-1, -1, -1], [-1, 9, -1], [-1, -1, -1]])
sharpened = cv2.filter2D(blurred, -1, sharpening_kernel)

# 결과 저장 및 보기
cv2.imwrite('/my_dir/sharpened_image.jpg', sharpened)
cv2.imshow('Sharpened Image', sharpened)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

  • Brightness and Contrast Adjustment: 이미지의 밝기와 대비를 조정
import cv2

# 이미지 읽기
image = cv2.imread('/my_dir/image.jpg')

# 밝기 및 대비 조정
alpha = 1.2  # 대비 (1.0 = 원본 대비)
beta = 50    # 밝기 (0 = 원본 밝기)
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)

# 결과 저장 및 보기
cv2.imwrite('/my_dir/adjusted_image.jpg', adjusted)
cv2.imshow('Adjusted Image', adjusted)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

오늘은 여기까지

 

728x90
반응형