大多数来源提供的代码只能检测一张图片的圆圈。是否可以检测多个图像的圆圈?如果是,我该怎么办?如果不是,为什么不可能?
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)
当我运行这段代码时,我得到了这个错误。谁能帮忙解释一下这是什么意思?
error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\hough.cpp:1736: error: (-215:Assertion failed) !_image.empty() && _image.type() == CV_8UC1 && (_image.isMat() || _image.isUMat()) in function 'cv::HoughCircles'
最佳答案
错误消息告诉您您的图像是空的,或者它不是灰度图像,或者它不是 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)
关于python - 是否可以对多个图像使用 cv2.HoughCircles 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089222/