python中圆检测为什么出现如下错误?

发布于 2022-09-04 11:24:37 字数 814 浏览 17 评论 0

import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(True):
    ret, frame=cap.read()
    gray_img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    img = cv2.medianBlur(gray_img, 5)
  

    circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,
                1,410,param1=100,param2=30,minRadius=15,maxRadius=25)

    circles = np.uint16(np.around(circles))
    
    for i in circles[0,:]:
   
        cv2.circle(frame,(i[0],i[1]),i[2],(0,255,0),2)
        
        cv2.circle(frame,(i[0],i[1]),2,(0,0,255),3)
    
    cv2.imshow("HoughCirlces", frame)
    if cv2.waitKey(97)  == ord('a'):
        break 
        
cv2.destroyAllWindows()
cap.release()

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对风讲故事 2022-09-11 11:24:37
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,
                1,410,param1=100,param2=30,minRadius=15,maxRadius=25)

中minRadius,与maxRadius限制太苛刻,一旦未捕获到圆,circles为空,后面运算会出错。
改为minRadius=0,maxRadius=0

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文