OpenCV 플랫폼은 파이썬용 cv2 라이브러리를 제공합니다. 이는 컴퓨터 비전에 유용한 다양한 형상 분석에 사용할 수 있습니다. 이 기사에서는 Open CV를 사용하여 원의 모양을 식별합니다. 이를 위해 우리는 cv2.HoughCircles() 함수를 사용할 것입니다. Hough 변환을 사용하여 회색조 이미지에서 원을 찾습니다. 아래 예에서는 이미지를 입력으로 사용합니다. 그런 다음 복사본을 만들고 이 변환 기능을 적용하여 출력에서 원을 식별합니다.
구문
cv2.HoughCircles(image, method, dp, minDist) Where Image is the image file converted to grey scale Method is the algorithm used to detct the circles. Dp is the inverse ratio of the accumulator resolution to the image resolution. minDist is the Minimum distance between the center coordinates of detected circles.
예시
아래 예에서는 아래 이미지를 입력 이미지로 사용합니다. 그런 다음 아래 프로그램을 실행하여 서클을 가져옵니다.
아래 프로그램은 이미지 파일에서 원의 존재를 감지합니다. 원이 있으면 강조 표시됩니다.
예시
import cv2 import numpy as np image = cv2.imread('circle_ellipse_2.JPG') output = image.copy() img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Find circles circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1.3, 100) # If some circle is found if circles is not None: # Get the (x, y, r) as integers circles = np.round(circles[0, :]).astype("int") print(circles) # loop over the circles for (x, y, r) in circles: cv2.circle(output, (x, y), r, (0, 255, 0), 2) # show the output image cv2.imshow("circle",output) cv2.waitKey(0)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
[[93 98 84]]
그리고 우리는 출력을 보여주는 아래 다이어그램을 얻습니다.