错误:如何修复 Opencv python 中的“SystemError: <built-in function imshow> returned NULL without setting an error”

May*_*tav 2 ocr opencv python-3.x python-tesseract

我正在研究一个项目使用计算机视觉从发票中提取数据,我正在尝试使用 opencv 和 pytesseract 从图像发票中提取数据,并进一步Regex将原始数据分离到不同的部分,如日期、供应商名称、发票编号,项目名称和项目数量。开始时我试图提取日期但遇到错误。

这是我的代码

import pytesseract
from pytesseract import Output
import cv2

img = cv2.imread('invoice.png')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
n_boxes = len(d['level'])
for i in range(n_boxes):
    (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])
    img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)

cv2.imshow(img,'img')
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

File "testpdf3.py", line 12, in <module>
    cv2.imshow(img,'img')
SystemError: <built-in function imshow> returned NULL without setting an error
Run Code Online (Sandbox Code Playgroud)

小智 8

的语法cv2.imshow()cv2.imshow("windowname", image)。在程序中,第 12 行应该是cv2.imshow('img', img).