可以对多个图像使用cv2.HoughCircles函数吗?

时间:2019-05-11 10:03:48

标签: python opencv

大多数来源提供的代码只能检测一张图像的圆圈。是否可以检测多个图像的圆圈?是,该怎么办?如果没有,为什么不可能呢?

for img in os.listdir(path):  
        img_array = cv2.imread(os.path.join(path,img)) 
        circles = cv2.HoughCircles(img_array,cv2.HOUGH_GRADIENT,1,10,param1=50,param2=12,minRadius=0,maxRadius=10)

,当我运行此代码时,出现此错误。有人可以帮忙解释一下这是什么意思吗?

  

错误:OpenCV(4.1.0)C:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ hough.cpp:1736:错误:(-215:断言失败)!_image.empty()&&函数'cv :: HoughCircles'中的_image.type()== CV_8UC1 &&(_image.isMat()|| _image.isUMat())

1 个答案:

答案 0 :(得分:2)

错误消息告诉您图像为空,不是灰度图像或不是OpenCV图像。很可能是第二个。 HoughCircles函数仅适用于灰度图像,在使用之前,您需要将图像转换为灰度:

for img in os.listdir(path):  
        img_array = cv2.imread(os.path.join(path,img)) 
        img_gray = cv2.cvtColor(img_array, cv2.COLOR_BGR2GRAY)
        circles = cv2.HoughCircles(img_gray,cv2.HOUGH_GRADIENT,1,10,param1=50,param2=12,minRadius=0,maxRadius=10)