cv2.error(215:断言失败)reader.ptr!=函数中为空

2024-10-03 15:26:21 发布

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

所以我正在尝试创建一个车牌检测程序,我一直在遵循一个指南, (https://github.com/nicknochnack/ANPRwithPython/blob/main/ANPR%20-%20Tutorial.ipynb) 然而,我目前遇到了一个问题

img = cv2.imread('image4.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

bfilter = cv2.bilateralFilter(gray, 11, 17, 17) #Noise reduction
edged = cv2.Canny(bfilter, 30, 200) #Edge detection

keypoints = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = imutils.grab_contours(keypoints)
contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]

location = None
for contour in contours:
    approx = cv2.approxPolyDP(contour, 10, True)
    if len(approx) == 4:
        location = approx
        break

mask = np.zeros(gray.shape, np.uint8)
new_image = cv2.drawContours(mask, [location], 0,255, -1)
new_image = cv2.bitwise_and(img, img, mask=mask)

我还尝试将“位置”更改为0或[0],但没有成功


Tags: imagetrueimgnewnpmasklocationcv2
2条回答

我刚刚遇到了同样的问题,事实上,这似乎是因为没有轮廓/形状可识别

在我的例子中,我将pdf(文本pdf)的每一页提取为图像。此错误是因为输出图像是1x1白色像素图像,因此这些“图像”上确实没有轮廓/形状。 如果您遇到与我相同的问题,以下是帮助我解决此问题的链接: https://github.com/Belval/pdf2image/issues/34

我只需要使用参数size=就可以解决这个问题,如下所示:

from pdf2image import convert_from_path
convert_from_path("test.pdf", size=(3000,))[0].save("out.png")

找到了这个问题的“解决方案”,尽管它不是一个很好的解决方案。 这种情况持续发生的原因是,我测试的图像中没有任何可识别的形状,因此,由于它无法设置“位置”,因此也无法正确调用函数。 希望遇到这个问题的人能看到这一点并检查他们的数据

相关问题 更多 >