是否可以限制tesseract寻找的字符集(例如,仅搜索字母az)?那将大大改善我的结果。
是否可以限制tesseract寻找的字符集(例如,仅搜索字母az)?那将大大改善我的结果。
Answers:
创建一个配置文件(如“字母”)在tessdata / CONFIGS目录-通常/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只识别所需的字符
要在配置文件中使用白名单或使用-c tessedit_char_whitelist=...
命令行开关,在最新的4.0版本中,您必须将OCR引擎模式设置为“仅原始Tesseract”。这是因为新的“神经网络LSTM”模式不遵守白名单设置。适用于4.0版本的正确命令行示例:
tesseract输入文件输出文件--oem 0 -c tessedit_char_whitelist = abc123
更新:在更高版本(4.0)中eng.traineddata
,Windows和某些Linux安装程序默认安装了损坏的文件。临时解决方案是更换tessdata\eng.traineddata
用旧版本的文件文件。该文件大约为30MB。否则会出现错误:“ Tesseract无法加载任何语言!” 或类似。
但是,在tesseract 4.1.1中,上述错误已修复,也就是说,在tesseract 4.1.1中,以下功能很有魅力
tesseract my_image.jpg stdout -l mylang configfile myconfig
其中“ myconfig”是位于TESSDATA / configs中的纯文本文件
load_system_dawg false
load_freq_dawg false
tessedit_char_whitelist ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
pyt.image_to_data(im_gray_res, config='-c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ --psm 11 --oem 0')
的pytesseract.pytesseract.TesseractError: (1, "Failed loading language 'eng' Tesseract couldn't load any languages! Could not initialize tesseract.")
。关于如何仅使用必需的字符集完成检测的任何想法?
pytesseract.image_to_data(Image.open('test.png'))
没有附加参数?因为该错误似乎与字符白名单本身无关。
eng.traineddata
文件已损坏。我尝试了最新的4.0版本,并遇到了相同的错误。临时解决方案是tessdata\eng.traineddata
用旧版本的文件替换文件。该文件应约为30MB(而不是4.0版上安装的4MB)。
tessdata/eng.trainedddata
下载的文件替换了我所拥有的文件,并且所有文件都在4.0版本上完美运行。
除了配置文件外,还有-c
标志:
tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
我正在使用Ubuntu 18.04.4 LTS。默认的tesseract是版本4。我不能将其用于白名单。然后将其升级到版本5。然后使用下面的命令,它开始工作。
tesseract sample.jpg stdout -l eng --oem 3 --psm 7
Warning: Invalid resolution 0 dpi. Using 70 instead.
LL £036 GL)
tesseract sample.jpg stdout -l eng --oem 3 --psm 7 -c tessedit_char_whitelist="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
Warning: Invalid resolution 0 dpi. Using 70 instead.
L4036GL
我的答案完全来自于接受的答案,并添加到此Tesseract
处以使使用NuGet包的任何.NET Windows开发人员受益-但是,请注意我的第2条提示,该说明适用于在Windows上使用任何类型的任何人Tesseract
config
文件夹内创建一个文件tessdata
夹。letters
文件config
夹内添加一个文件。
使用诸如TextPad之类的编辑器,它将帮助您将其保存为UNIX格式,ANSI编码(我最初尝试过UTF-8 / IBM PC,而tesseract在我的Tests输出中出现了错误)letters
文件在“属性”面板中的“构建操作”设置为,Content
并进一步标记为复制到输出目录: var ocrEng = new TesseractEngine("./tessdata", "eng", EngineMode.Default, "letters");