当前位置:  开发笔记 > 运维 > 正文

限制字符tesseract正在寻找

如何解决《限制字符tesseract正在寻找》经验,为你挑选了4个好方法。

是否可以限制tesseract正在寻找的字符集(例如,仅搜索字母az)?这将极大地改善我的结果.



1> 小智..:

在tessdata/configs目录中创建一个配置文件(例如"letters") - 通常/usr/share/tesseract/tessdata/configs

/usr/share/tesseract-ocr/tessdata/configs

并将此行添加到配置文件:

tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz  

...或者[az]工作.. dunno :-)
然后调用tesseract类似于:

tesseract input.tif output nobatch letters  

这将限制tesseract只识别想要的字符



2> Bartłomiej U..:

要在配置文件中使用白名单或使用-c tessedit_char_whitelist=...命令行开关,在最新的4.0版本中,您必须将OCR引擎模式设置为"仅原始Tesseract".这是因为新的"神经网络LSTM"模式不符合白名单设置.适用于4.0版本的命令行示例:

tesseract input_file output_file --oem 0 -c tessedit_char_whitelist = abc123

更新:在较新的版本(4.0)中eng.traineddata,Windows和某些Linux安装程序默认安装了损坏的文件.临时解决方案是tessdata\eng.traineddata用旧版本替换文件.此文件大约应为30MB.否则你会收到错误:"Tesseract无法加载任何语言!" 或类似的.


是的,我刚刚从GitHub项目[link](https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata)中尝试了该文件的最新版本,并替换了我在`tessdata中使用的版本/ eng.trainedddata`和已下载的文件,并且在4.0版本上都可以完美运行。

3> jmunsch..:

除配置文件外,还有-c标志:

tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6


即使我把它设置为普通的香草字母,我也会看到"检测到31个变音符号"的消息.这很奇怪,因为我没有在白名单中包含任何变音符号或重音符号.

4> 小智..:

只需在Android上使用tesseract的任何人添加此项.在readOCR函数中设置语言等,添加以下行;

tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");

你也可以为要排除的字符做blackList.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有