首页 > 解决方案 > 从图片中获取 Tesseract 中的空结果,但从上述图片的屏幕截图中获得了良好的结果

问题描述

Tesseract 版本,来自 macOS 10.14.6 中的 --help 命令。莫哈韦

tesseract 4.1.1
 leptonica-1.79.0
  libgif 5.2.1 : libjpeg 9d : libpng 1.6.37 : libtiff 4.1.0 : zlib 1.2.11 : libwebp 1.1.0 : libopenjp2 2.3.1
 Found AVX2
 Found AVX
 Found FMA
 Found SSE

我正在尝试从个人身份证中提取信息,虽然源图片的质量可能会有很大差异,但在我进行了一些预处理之后,它大部分都可以正常工作。但是,我遇到了一个奇怪的问题。这一切都是在对图片进行一些预处理(如去偏斜、阈值处理等)之后以及在其上运行 Tesseract 之前完成的。例如在执行 bash 命令时

tesseract inputImg.png out2 -l jpn

在某些情况下(我的图片集的 20%~)输出为空。好吧,它实际上有一个换行符,但就是这样。我希望低质量的图片至少会产生一些垃圾输出,但相反,我什么也没得到。

命令行仅显示以下信息消息,就像每次执行时一样,无论它是否设法从图片中提取文本。

Tesseract Open Source OCR Engine v4.1.1 with Leptonica

我不知道为什么它没有从图片中得到任何东西。最奇怪的是,如果我在Preview中打开那张图片,对其进行截图(使用内置的 macOS 截图功能),然后在截图上运行相同的 tesseract 命令,它会输出预期的数据!现在,我真的不知道截屏时幕后发生了什么,但图片的内容几乎相同,所以结果差异如此之大令人惊讶。我认为问题出在文件本身,但我不知道如何解决它。

此外,源图像和屏幕截图的分辨率大致相同。例如,其中之一是 1357 x 938,而其屏幕截图版本是 1342 x 915。

我试过的:

每次都是一样的结果。再次,感觉好像文件本身搞砸了,但我不知道确切的问题可能是什么。建议?我正在考虑将垃圾数据添加到图片中,以查看它是否有任何作用。

标签: tesseract

解决方案


推荐阅读