EMGU.CV の Tesseract オブジェクトを使用して、いくつかの画像で OCR を実行したいと考えています。まず、OCR と LicensePlateRecognition の例をダウンロードし、コンパイルして実行しました。
ただし、Tesseract は次の例外をスローし続けました。
パス 'teseract' と言語 'eng' を使用して ocr モデルを作成できません。
そして、ソースを次の行までたどりました。
_ocr = new Tesseract(@"tessdata", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_CUBE_COMBINED);
私は最も明白な方法でそれを修正しようとしました:私はそれにフルパスを与え、ファイルを「C:\」だけにコピーし、プログラムの現在のディレクトリがtessdataと同じディレクトリであることを確認しました。
それらのどれも機能しなかったので、procmon を使用して、次のファイルを探していることを発見しました。
C: \Program Files (x86)\Tesseract-OCR\tessdata
そして、私が何をしても、この場所から変更することはできないようです. (もちろん、そこにファイルを移動することはうまくいきました)。この場所は EMGU.cv のコードのどこにも存在しないため、Tesseract のコードにデフォルト (?) としてコンパイルされていると思います。
では、この場所を使用しないように Tesseract を変更するにはどうすればよいですか? 明らかな方法は、Tesseract コンストラクターがパスを渡して何かを行う必要があることです。