我有一个在Linux上运行的Tesseract-OCR引擎的一个问题。 我已经下载RUS语言数据,并把它tessdata目录(在/ usr / local / share下/ tessdata)。 当我试图运行的Tesseract用命令tesseract blob.jpg out -l rus
,它会显示一个错误:
Error opening data file /usr/local/share/tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language eng
Tesseract couldn't load any languages!
Could not initialize tesseract.
根据编制指南 ,我用export TESSDATA_PREFIX='/usr/local/share/'
点我tessdata目录。 也许我应该修改任何配置文件? 正方体尝试加载“工程”的数据文件,而不是“RUS”。
截图: http://i.stack.imgur.com/I0Guc.png
Answer 1:
你可以抓住eng.traineddata
从谷歌(压缩):
wget https://tesseract-ocr.googlecode.com/files/eng.traineddata.gz
或Github的(原始):
wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata
检查https://github.com/tesseract-ocr/tessdata对训练有素的语言数据的完整列表。
当你抢文件(S),将它们移动到/usr/local/share/tessdata
文件夹中。 警告:一些Linux发行(如openSUSE的和Ubuntu)可以中期待它/usr/share/tessdata
代替。
# If you got the data from Google, unzip it first!
gunzip eng.traineddata.gz
# Move the data
sudo mv -v eng.traineddata /usr/local/share/tessdata/
Answer 2:
该simpliest的办法是安装所需的软件包:
sudo apt-get install tesseract-ocr-eng #for english
sudo apt-get install tesseract-ocr-tam #for tamil
sudo apt-get install tesseract-ocr-deu #for deutsch (German)
正如你可以看到,它打开了道路,其他语言(即正方体-OCR-FRA)。
Answer 3:
我有这个错误太在Windows机器上。
我的解决办法。
1)下载您的语言文件https://github.com/tesseract-ocr/tessdata/tree/3.04.00
例如,对于ENG,我下载的所有文件与工程前缀。
2)把它们变成tessdata目录中的一些文件夹内。 此文件夹添加到系统路径变量作为TESSDATA_PREFIX。
结果将是系统的环境变量:TESSDATA_PREFIX = d:/的Java / OCR和OCR文件夹与文件语言tessdata。
这是该目录的截图:
Answer 4:
以前没有解决方案为我工作。
我已经安装了apt-get
手动下载tessdata,搬来搬去/usr
等等,如果我出口变量千倍甚至没有人的工作。
最后,在开始之前的最后一次尝试哭我试图直接传递到正方体的实例路径()。
在Python: tr = Tesseract("/usr/local/share/tesseract-ocr/")
现在它的工作原理。 为了澄清,即时通讯使用tesserwrap
模块。
Answer 5:
您还可以从C代码的tesseract API函数:
#include <tesseract/baseapi.h>
#include <tesseract/ocrclass.h>; // ETEXT_DESC
using namespace tesseract;
class TessAPI : public TessBaseAPI {
public:
void PrintRects(int len);
};
...
TessAPI *api = new TessAPI();
int res = api->Init(NULL, "rus");
api->SetAccuracyVSpeed(AVS_MOST_ACCURATE);
api->SetImage(data, w0, h0, bpp, stride);
api->SetRectangle(x0,y0,w0,h0);
char *text;
ETEXT_DESC monitor;
api->RecognizeForChopTest(&monitor);
text = api->GetUTF8Text();
printf("text: %s\n", text);
printf("m.count: %s\n", monitor.count);
printf("m.progress: %s\n", monitor.progress);
api->RecognizeForChopTest(&monitor);
text = api->GetUTF8Text();
printf("text: %s\n", text);
...
api->End();
而建立这样的代码:
g++ -g -I. -I/usr/local/include -o _test test.cpp -ltesseract_api -lfreeimageplus
(我需要的FreeImage的图片加载)
Answer 6:
我使用Visual Studio 2017年的Community Edition。
我在我的项目的Debug目录下建立一个目录名为tessdata解决了这个问题。 然后我把eng.traineddata文件到所述目录中。
Answer 7:
tesseract --tessdata-dir <tessdata-folder> <image-path> stdout --oem 2 -l <lng>
就我而言,我已经作出或企图的错误,这不是一个成功的。
- 我克隆GitHub的回购和复制的文件从那里
- 在/ usr / local / share下/ tessdata /
- 的/ usr /共享/的tesseract-OCR / tessdata /
- 在/ usr /共享/ tessdata /
- 使用
TESSDATA_PREFIX
以上路径 - 命令和apt-get安装的Tesseract-OCR-ENG
首先2次尝试没有成功是因为,从文件git clone
没工作了,我不知道原因。 我不知道为什么#3尝试为我工作。
最后,
- 我下载使用eng.traindata文件
wget
- 其复制到某个文件夹
- 二手
--tessdata-dir
与文件夹名称
拿走对我来说是学习的工具以及与使用它 ,而不是依赖于包管理器安装和文件夹
Answer 8:
我使用的是Windows操作系统,我尝试了上述所有的解决方案,其中没有工作。
最后,我d驱动器上安装的Tesseract-OCR(我来自哪里运行我的python脚本),而不是C盘和它的作品。
所以,如果你使用的是Windows,在相同的驱动器的Tesseract-OCR运行Python脚本。
Answer 9:
C:\ Users \用户pankaj.neupaney \应用程序数据\本地\连续\ anaconda3 \ ENVS \ ocrtextrecog \ LIB \站点包\ tesserocr
添加您的tesssdatahere
文章来源: Tesseract running error