[파이썬] opencv-python 이미지에서 경계 탐지하기

이미지 처리는 컴퓨터 비전 분야에서 중요한 주제 중 하나입니다. 경계 탐지는 이미지에서 객체나 특징을 식별하는 데 유용한 작업입니다. OpenCV-Python은 오픈 소스 컴퓨터 비전 라이브러리로, 파이썬에서 경계 탐지 작업을 쉽게 수행할 수 있도록 지원합니다.

OpenCV 설치하기

먼저, OpenCV-Python을 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install opencv-python

이미지 불러오기

경계 탐지를 수행하기 전에, 대상 이미지를 불러와야 합니다. OpenCV를 사용하여 이미지를 불러올 수 있습니다. 아래의 코드는 “image.jpg”라는 이미지 파일을 불러오는 예제입니다.

import cv2

image = cv2.imread("image.jpg")

이미지 전처리

경계 탐지를 수행하기 전에, 이미지를 전처리해야 하는 경우가 있습니다. 예를 들어, 이미지를 그레이스케일로 변환하거나 노이즈를 제거할 수 있습니다.

# 그레이스케일로 변환
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 노이즈 제거
blur_image = cv2.GaussianBlur(gray_image, (5, 5), 0)

경계 탐지

이제 경계 탐지를 수행할 준비가 되었습니다. OpenCV의 Canny 함수를 사용하여 경계를 탐지할 수 있습니다.

edges = cv2.Canny(blur_image, threshold1, threshold2)

threshold1threshold2는 경계를 결정하는 데 사용되는 임계값입니다. 이 값은 문제 및 이미지에 따라 조정해야 합니다.

결과 확인

마지막으로, 경계 탐지 결과를 확인할 수 있습니다. imshow 함수를 사용하여 이미지를 표시할 수 있습니다.

cv2.imshow("Edges", edges)
cv2.waitKey(0)

위의 코드는 경계 탐지된 이미지를 “Edges”라는 창에 표시하며, 아무 키나 누를 때까지 창이 유지됩니다.

전체 예제 코드

import cv2

image = cv2.imread("image.jpg")
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur_image = cv2.GaussianBlur(gray_image, (5, 5), 0)
edges = cv2.Canny(blur_image, threshold1, threshold2)

cv2.imshow("Edges", edges)
cv2.waitKey(0)

위의 코드를 실행하면, “image.jpg” 파일에서 경계 탐지가 수행되고 결과가 표시됩니다.

OpenCV-Python을 사용하여 이미지에서 경계를 탐지하는 방법에 대해 간단히 알아보았습니다. OpenCV에는 다양한 경계 탐지 알고리즘과 이미지 처리 기능이 포함되어 있으므로, 관심있는 분야에 따라 적절한 방법을 선택할 수 있습니다.