EasyOCR 无法识别图像中的此数字

问题描述 投票:0回答:1

我面临着在Python中从图像中检测数字的问题(图像包含白色背景上的数字5)

我正在使用 easyocr 库和 opencv

这是我的代码示例:

import cv2 #pip install opencv-python
import easyocr #pip install easyocr

img = cv2.imread('test.png')
reader = easyocr.Reader(['en'], gpu=True)
text = reader.readtext(img, allowlist ='0123456789')
print(text)

当我运行代码时,当我需要得到这样的东西时,我会得到

[]

[([[0, 11], [25, 11], [25, 29], [0, 29]], '5', 0.96162421524552115)]

(只是一个例子,这不是我需要得到的确切东西)

Image

python ocr easyocr
1个回答
0
投票

使用 easyocr 进行检测时,您可以调整几个参数,请在文档中查看全部参数

其中之一是“low_text”,在这种情况下可以进行检测。 我只是简单测试了一下,0.3 得到了预期的输出:

import cv2 #pip install opencv-python import easyocr #pip install easyocr img = cv2.imread('test.png') reader = easyocr.Reader(['en']) text = reader.readtext(img, allowlist ='0123456789', low_text=0.3) print(text)
输出:

[([[37, 7], [55, 7], [55, 31], [37, 31]], '5', 0.9999980926522767)]
从源代码来看,这似乎被用作较低的阈值:

craft_utils.py:27

这里有一个关于解释它的作用的开放问题:

关于这两个参数差异的问题:text_threshold 和 low_text

© www.soinside.com 2019 - 2024. All rights reserved.