5

PCにtesseractをインストールし、TESSDATA_PREFIX環境変数を定義しました。tesseract を完全にアンインストールした後、次のように tesseract API を使用してみます。

if (myOCR->Init("C:/Projects/project/Release/tessdata/", "rus")) {
            fprintf(stderr, "Could not initialize tesseract.\n");
            exit(1);
        }

そして受け取る

Error opening data file C:\Program Files (x86)\Tesseract-OCR\tessdata/rus.traine
ddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent d
irectory of your "tessdata" directory.
Failed loading language 'rus'
Tesseract couldn't load any languages!
Could not initialize tesseract.

cmd で set TESSDATA_PREFIX と入力すると、そのような変数がないことがわかります。しかし、tesseractはそれを覚えています(方法がわからない)。では、具体的なフォルダー内のtraindataを検索するようにtesseractを強制するにはどうすればよいですか? ありがとう

4

3 に答える 3

3

これは役に立ちそうです: Tesseract - 言語ファイルの場所を変更する

そのスレッドの回答から、tesseract が環境変数を探す場合のようですが、設定されていない場合は固定された場所を想定します

これを修正する最も簡単な方法は、「c​​md」を実行してから次のことを行うことです。

c:\Users\alex> set TESSDATA_PREFIX="C:/Projects/project/Release/tessdata"
c:\Users\alex> cd MyOCRProgDir
c:\Users\alex\MyOCRProgDir> MyProg

それが役立つことを願っています!

于 2013-02-19T07:25:51.447 に答える
1

私は同じ問題を経験しました。.. tessdata フォルダを、アプリケーションが実行されているディレクトリにコピーしただけです。. .

注: その後、tessdata プロパティの "Copy to Output Directory" が "Copy Always" に設定されていることを確認してください。これで問題は解決します。. .

YouTube のこのリンクを参照してください。. より良いデモンストレーションのために。. 。それが役に立てば幸い :)

http://www.youtube.com/watch?v=RqvvXJXuRYY

于 2014-02-22T09:26:45.500 に答える
0

トレーニングデータにも同じ問題がありました。TESSDATA_PREFIX を強制的に使用しないようにする代わりに、回避策を見つけました。これは私にとってはうまくいきました。

私のマシンは 64 ビットで、VS2012 で 32 ビットのコピーを作成しています。

環境変数を設定します。TESSDATA_PREFIX : C:\Program Files (x86)\Tesseract-OCR

ここで「Tesseract-OCR」は「tessdata」フォルダの親ディレクトリです。

パス変数を編集します。パス: C:\tess\lib\lib;

ここで、「C:\tess\lib\lib」は lib および dll ファイルがある場所です: liblept168.dll、liblept168.lib など。

新しい win32 コンソール アプリケーションを起動し、次の設定を行います。C/C++ >> 一般 C:\tess\include\include

ここで、「C:\tess\include\include」は、インクルード ファイルが配置されている「tesseract」および「leptonica」フォルダーの親ディレクトリです。

リンカー >> 追加のライブラリ依存関係 C:\tess\lib\lib

リンカー >> 追加の依存関係 liblept168.lib libtesseract302.lib (これらをリストに追加)

C/C++>>Preprocessor _CRT_SECURE_NO_WARNINGS (これをリストに追加)

2つのtesseract dll(ライブラリファイルに対応)をコピーして、フォルダをデバッグおよび解放します(ルート内のものではありません)

tessdata フォルダー (Tesseract インストール内) を上記の場所にコピーします。

うまくいけば、あなたは行ってもいいでしょう。

于 2014-02-24T12:10:21.507 に答える