106

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ディレクトリをポイントしていました。多分私は設定ファイルを編集する必要がありますか?Tesseractは、「ru​​s」ではなく「eng」データファイルをロードしようとします。

スクリーンショット:http: //i.stack.imgur.com/I0Guc.png

4

18 に答える 18

109
于 2014-04-02T04:58:28.490 に答える
76

最も簡単な方法は、必要なパッケージをインストールすることです。

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)

お気づきのように、これにより他の言語 (tesseract-ocr-fra) への道が開かれます。

于 2016-03-30T12:49:12.617 に答える
38

Windowsマシンでもこのエラーが発生しました。

私の解決策。

1) https://github.com/tesseract-ocr/tessdata/tree/3.04.00から言語ファイルをダウンロードします 。

たとえば、eng の場合、eng プレフィックスを持つすべてのファイルをダウンロードしました。

2) それらをいくつかのフォルダー内のtessdataディレクトリに入れます。このフォルダーをTESSDATA_PREFIXとしてシステム パス変数に追加します。

結果は System env var: TESSDATA_PREFIX=D:/Java/OCR となり、OCR フォルダーには言語ファイルを含む tessdataがあります。

これはディレクトリのスクリーンショットです:

ここに画像の説明を入力

于 2017-09-10T20:15:29.170 に答える
4

以前の解決策は私にとってはうまくいきませんでした。

私はapt-gettessdataを手動でダウンロードしてインストールしたり、移動し/usrたりしましたが、変数を何千回もエクスポートしても誰も機能しませんでした。

最後に、泣き始める前の最後の試行で、Tesseract() のインスタンスに直接パスを渡そうとしました。

Python の場合:tr = Tesseract("/usr/local/share/tesseract-ocr/")動作するようになりました。明確にするために、tesserwrapモジュールを使用しています。

于 2016-08-08T05:21:59.047 に答える
2

CコードからtesseractAPI関数を呼び出すことができます。

#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が必要です)

于 2013-02-13T12:32:47.220 に答える
2

私にとっての問題は、列車のデータ ファイルをダウンロードする方法にありました。生のリンクを取得していることを確認してください。

最初に私は使用していました:

wget https://github.com/tesseract-ocr/tessdata_best/blob/master/eng.traineddata

私がそれを変更したとき:

wget https://github.com/tesseract-ocr/tessdata_best/raw/master/eng.traineddata

出来た

于 2021-07-29T15:18:44.513 に答える
2

Windows OS を使用しています。上記のすべてのソリューションを試しましたが、どれも機能しません。

最後に、C ドライブではなく D ドライブ (Python スクリプトを実行する場所) に Tesseract-OCR をインストールすると、動作します。

したがって、Windows を使用している場合は、Tesseract-OCR と同じドライブで Python スクリプトを実行します。

于 2019-04-18T22:04:12.493 に答える
0

macOS の DEU 言語でも同じ問題がありました。次のようにすべての追加言語をインストールすることで解決できました。

brew install tesseract-lang

https://formulae.brew.sh/formula/tesseractで提案されているように

于 2021-09-11T22:38:01.980 に答える