728x90
반응형
< Hough Circle Transform >
이번 장에서는
- 이미지 내에서 원을 찾기 위한 Hough Transform을 사용하는 법
- cv2.HoughCircles() 함수
에 대해 봐볼 것이다.
Theory
원은 수학적으로
여기서 쓰는 함수는 cv2.HoughCircles() 이다. 코드를 보자
import cv2
import numpy as np
img = cv2.imread('./images/opencv.jpg',0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# 원 외곽선 그리기
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# 원 중심 그리기
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imwrite("Detected.jpg",cimg)
cv2.imshow("Detected Circles",cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
결과는 아래와 같다!
728x90
반응형