使用cv2.HoughCircles功能是否可用于多张图片?

2024-09-27 09:25:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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'


Tags: path代码in图像imageimgforos
1条回答
网友
1楼 · 发布于 2024-09-27 09:25:11

错误消息告诉您您的图像是空的,或者不是灰度的,或者不是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)

相关问题 更多 >

    热门问题