如何在opencv中检测视频源中的圆圈?

时间:2017-08-22 14:30:43

标签: opencv image-processing

我想检测来自网络摄像头的视频输入中的圆圈。我尝试使用霍夫圆变换功能...但它给出了一个错误“只允许8位单通道图像。”

这是我的代码:

import cv2
import numpy as np

cap = cv2.VideoCapture(0)


while True:
    _,frame=cap.read()

    hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    circles = cv2.HoughCircles(frame,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(hsv,(i[0],i[1]),i[2],(0,255,0),2)
        # draw the center of the circle
        cv2.circle(hsv,(i[0],i[1]),2,(0,0,255),3)

cv2.waitKey(0)
cv2.destroyAllWindows()

我想对此代码进行改进...... 或者我可以通过其他方法检测圈子。

1 个答案:

答案 0 :(得分:1)

您应该使用cvtColor()来转换框架。