파이썬과 OpenCV를 사용한 이미지에서 직선 검출하기

이미지 처리에서 직선을 검출하는 것은 다양한 컴퓨터 비전 애플리케이션에서 매우 중요한 과정입니다. 직선 검출은 영상에서 선의 방향, 위치 및 길이를 파악하는 것을 의미합니다. 파이썬과 OpenCV를 사용하면 이미지에서 직선을 검출하는 작업을 간단하게 수행할 수 있습니다.

OpenCV 설치하기

먼저, OpenCV를 설치해야 합니다. 파이썬의 가상환경에서 다음 명령어를 통해 OpenCV를 설치할 수 있습니다.

pip install opencv-python

이미지 로드하기

이미지를 로드하기 위해 OpenCV의 imread() 함수를 사용합니다. 다음은 예시 이미지를 로드하는 코드입니다.

import cv2

image = cv2.imread('example.jpg')

이미지 전처리하기

직선을 검출하기 전에 이미지를 전처리해야 합니다. 전처리는 이미지를 흑백으로 변환하거나 엣지 검출을 수행하는 등의 작업을 포함할 수 있습니다.

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150)

직선 검출하기

이미지에서 직선을 검출하기 위해 HoughLinesP() 함수를 사용합니다. 이 함수는 허프 변환을 이용하여 직선을 검출합니다.

lines = cv2.HoughLinesP(edges, 1, np.pi / 180, threshold=100, minLineLength=100, maxLineGap=10)

검출된 직선 그리기

검출된 직선을 원본 이미지에 그려줍니다. line() 함수를 사용하여 시작점과 끝점의 좌표를 입력하여 직선을 그릴 수 있습니다.

if lines is not None:
    for line in lines:
        x1, y1, x2, y2 = line[0]
        cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), 2)

결과 확인하기

직선이 그려진 이미지를 확인하기 위해 imshow() 함수를 사용합니다.

cv2.imshow('Detected Lines', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

이제 이미지에서 직선을 검출하는 기본적인 작업을 수행할 수 있습니다.

참고 자료