Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

OpenCV로 이미지에 화이트 TopHat(탑햇) 연산 적용하는 방법

이 튜토리얼에서는 OpenCV를 사용해 이미지에 TopHat(탑햇) 연산을 적용하는 방법을 알아봅니다.

TopHat 연산이란?

TopHat 연산은 형태학적(morphological) 연산의 한 종류로, 입력 이미지에서 작은 요소나 세부 디테일을 추출하는 데 사용됩니다. 특히 어두운 배경 속 밝은 객체를 강조하는 데 효과적이며, 조명 불균형 보정이나 작은 결함 검출 등에도 활용됩니다.

OpenCV에서는 cv2.morphologyEx(image, cv2.MORPH_TOPHAT, kernel) 함수를 통해 이 연산을 간단히 수행할 수 있습니다.

원본 이미지

OpenCV로 이미지에 화이트 TopHat(탑햇) 연산 적용하는 방법

알고리즘 단계

1단계: cv2 모듈을 임포트합니다.
2단계: 이미지를 읽어옵니다.
3단계: 커널(kernel) 크기를 정의합니다.
4단계: 이미지와 커널을 cv2.morphologyEx() 함수에 전달합니다.
5단계: 결과 이미지를 화면에 출력합니다.

예제 코드

import cv2

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

# 커널 크기 정의
filter_size = (5, 5)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, filter_size)

# TopHat 연산 적용
image = cv2.morphologyEx(image, cv2.MORPH_TOPHAT, kernel)

# 결과 출력
cv2.imshow('TopHat', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

참고: 실제 실행 환경에서는 cv2.imshow() 호출 후 cv2.waitKey()cv2.destroyAllWindows()를 함께 사용해야 창이 정상적으로 표시되고 종료됩니다.

실행 결과

OpenCV로 이미지에 화이트 TopHat(탑햇) 연산 적용하는 방법

결과 설명

위 결과 이미지를 보면 원본에서 잘 보이지 않던 작은 세부 요소들이 밝게 강조된 것을 확인할 수 있습니다. TopHat 변환은 이처럼 입력 이미지에서 미세한 디테일을 효과적으로 추출하고 싶을 때 유용하게 활용됩니다.