이미지 분석을 위해 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
예시
아래 예에서는 아래 이미지를 입력 이미지로 사용합니다. 그런 다음 아래 프로그램을 실행하여 주변의 윤곽선을 얻으십시오.
위의 다이어그램에서 세 가지 모양을 찾을 수 있습니다. 아래 프로그램을 사용하여 전체 또는 일부 주위에 등고선을 그릴 수 있습니다.
예시
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
그리고 우리는 출력을 보여주는 아래 다이어그램을 얻습니다.