错误:如何在 Opencv python 中修复“SystemError:<built-in function imshow> 返回 NULL 而未设置错误”

Posted

技术标签:

【中文标题】错误:如何在 Opencv python 中修复“SystemError:<built-in function imshow> 返回 NULL 而未设置错误”【英文标题】:Error : How to fix "SystemError: <built-in function imshow> returned NULL without setting an error" in Opencv python 【发布时间】:2020-06-30 15:21:39 【问题描述】:

我正在从事一个项目使用计算机视觉从发票中提取数据在此我正在尝试使用 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')

但我得到了这个错误

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于错误:如何在 Opencv python 中修复“SystemError:<built-in function imshow> 返回 NULL 而未设置错误”的主要内容,如果未能解决你的问题,请参考以下文章

Python,OpenCV中的图像修复——cv2.inpaint()

如何修复 Python 中的“ImportError:动态模块未定义模块导出函数 (PyInit_cv2)”错误?

基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线

如何在 django 中修复冻结的 cv2.imshow(来自 opencv)

OpenCV Python - 修复损坏的文本

如何修复 TVL1 光流算法的 opencv 导入