파이썬과 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()
이제 이미지에서 직선을 검출하는 기본적인 작업을 수행할 수 있습니다.