Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 OpenCV를 사용하여 등고선 찾기 및 그리기

<시간/>

이미지 분석을 위해 Opencv(Open Source Computer Vision Library) python 라이브러리를 사용합니다. opencv 설치 후 import 해야 하는 라이브러리 이름은 cv2 입니다.

아래 예에서 우리는 이미지 파일에 있는 등고선을 찾습니다. 윤곽선은 이미지에 있는 모양을 식별하는 데 도움이 됩니다. 등고선은 동일한 강도를 갖는 이미지의 경계를 따라 모든 점을 연결하는 선으로 정의됩니다. OPENCV의 findContours 함수는 윤곽을 식별하는 데 도움이 됩니다. 마찬가지로 drawContours 함수는 윤곽을 그리는 데 도움이 됩니다. 아래는 둘 다의 구문입니다.

구문

cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE)
Where
image is the name of the image
Mode is Contour retrieval mode
Method is Contour approximation method

cv.DrawContours(img, contours, contourIdx, colour, thickness)
Where
image is the name of the image
contours – All the input contours.
contourIdx – Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
color – Color of the contours
thickness is how thick are the lines drawing the contour

예시

아래 예에서는 아래 이미지를 입력 이미지로 사용합니다. 그런 다음 아래 프로그램을 실행하여 주변의 윤곽선을 얻으십시오.

Python에서 OpenCV를 사용하여 등고선 찾기 및 그리기

위의 다이어그램에서 세 가지 모양을 찾을 수 있습니다. 아래 프로그램을 사용하여 전체 또는 일부 주위에 등고선을 그릴 수 있습니다.

예시

import cv2
# Load an image
image = cv2.imread(“path to image file”)
# Changing the colour-space
LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV)
# Find edges
edges = cv2.Canny(LUV, 10, 100)
# Find Contours
contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# Find Number of contours
print("Number of Contours is: " + str(len(contours)))
# Draw yellow border around two contours
cv2.drawContours(image, contours, 0, (0, 230, 255), 6)
cv2.drawContours(image, contours, 2, (0, 230, 255), 6)
# Show the image with contours
cv2.imshow('Contours', image)
cv2.waitKey(0)

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

출력

Number of Contours found = 3

그리고 우리는 출력을 보여주는 아래 다이어그램을 얻습니다.

Python에서 OpenCV를 사용하여 등고선 찾기 및 그리기