正方体运行错误(Tesseract running error)

2019-07-19 16:23发布

我有一个在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尝试为我工作。

最后,

  1. 我下载使用eng.traindata文件wget
  2. 其复制到某个文件夹
  3. 二手--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
标签: ocr tesseract