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

Python에서 OpenCV를 사용하여 이미지에서 원 찾기

<시간/>

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.

예시

아래 예에서는 아래 이미지를 입력 이미지로 사용합니다. 그런 다음 아래 프로그램을 실행하여 서클을 가져옵니다.

Python에서 OpenCV를 사용하여 이미지에서 원 찾기

아래 프로그램은 이미지 파일에서 원의 존재를 감지합니다. 원이 있으면 강조 표시됩니다.

예시

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]]

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

Python에서 OpenCV를 사용하여 이미지에서 원 찾기