cv2.approxPolyDP检测到圆
时间: 2024-05-09 13:15:58 浏览: 85
基于opencv的圆检测
5星 · 资源好评率100%
cv2.approxPolyDP函数是用于近似检测物体轮廓的函数,它可以将轮廓中的曲线近似为一系列直线,从而减少轮廓的点数。然而,它并不适用于检测圆形轮廓。如果您需要检测圆形轮廓,可以使用cv2.HoughCircles函数,该函数使用霍夫变换检测圆形轮廓。下面是一个示例代码:
``` python
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()
```
其中,img为输入的灰度图像,circles为检测到的圆形轮廓的输出结果。您可以根据需要调整函数的参数,例如param1和param2控制霍夫变换的灵敏度和圆形的检测精度。
阅读全文