本站所有资源均为高质量资源,各种姿势下载。
虽然Hough变换是检测直线和圆的很强大的工具,但它并不是万能的。因此,在使用Hough变换之前,必须确保对图像进行了适当的预处理,以便提高检测的准确性。此外,使用Hough变换检测圆时,还需要了解圆的半径范围,这对于特定应用程序非常重要。以下是使用Hough变换检测圆的示例程序,它可以作为您的参考,以便更好地理解Hough变换的应用。
```
import cv2
import numpy as np
img = cv2.imread('circle.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,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
```