大多数来源提供的代码只能检测一张图像的圆圈。是否可以检测多个图像的圆圈?是,该怎么办?如果没有,为什么不可能呢?
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())
答案 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)