python - PyTesseract - 将 OCR 限制为一组字符

标签 python ocr tesseract

我在使用 pytesseract 时遇到了问题。我知道您可以使用命令行参数将 tesseract 限制为一组特定的字符:

tesseract input.tif output nobatch digits

我发现一些人说他们可以在 python 中使用以下行来限制 tesseract:

import tesseract
ocr = tesseract.TessBaseAPI();
ocr.Init(".","eng",tesseract.OEM_TESSERACT_ONLY)
ocr.SetVariable("tessedit_char_whitelist", "0123456789")

但这是为了使用 tesseract API,而我正在使用 pytesseract.... 最后我也尝试了:

print(image_to_string(someimage, config='outputbase digits'))

但这不起作用,因为我的输出中仍然有字母。这很奇怪,因为我正在使用下面的代码并且它正在运行:

print(image_to_string(screen, config='-psm 10'))

PSM 代表 PageSegmentationMode,它允许我将图像文件解析为单个字符。我不明白为什么这行得通,而之前的代码片段却行不通,因为它们都是 tesseract 的命令行参数...

有人可以帮忙吗?我想将这两个选项与自定义词表(我在 tesseract 的配置文件夹中创建)一起使用。

最佳答案

终于找到了解决方案,如果它可以帮助任何人......这是来自 tesseract 帮助页面:

Simplest invocation of tesseract :

tesseract imagename outputbase

我可以从中推断出正确的语法(事实上,我在 stack overflow 上发现的所有东西几乎都把我指向了错误的方向,可能是因为 tesseract 的不同版本)。请记住,我使用的是 tesseract 3.05(GitHub 上提供的 win 安装程序)和 pytesseract(从 pip 安装)。

image_to_string(someimage, config='digits -psm 7')

正如我们在帮助页面上看到的,outputbase 参数首先出现在文件名之后和其他选项之前,这允许同时使用 PSM 和受限字符集。

来自 tesseract 帮助页面的所有命令行参数都可以这样使用,在 config 变量中!!

关于python - PyTesseract - 将 OCR 限制为一组字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42091772/

相关文章:

python - 改进元组距离计算算法以提高时间效率

python - 如何使用加权邻接矩阵绘制边权重?

python - Pyocr 无法识别 get_available_tools

c# - 图像 OCR - 过滤不需要的数据

python - 如何使 Tesseract 更快

amazon-web-services - 在 Elastic Beanstalk 上安装 Tesseract 的最快方法

c++ - 如何使用 OpenCV 从图像中提取文本行

python - 将特定值写回 .csv,Python

python - 检查文件是否实际上是 zip 文件

android - 使用 Tesseract 的 OCR Android 应用程序