DEKOさんが書かれているこの記事をもとにTesseract OCR を使いたいのです
https://qiita.com/ht_deko/items/98b4fee72869c809cbec
記事の通りに1~4まで行うとばっちり動きます。
ですがビルド構成をDebugにすると途端に言語データ読み込みで失敗します。
なぜだかお分かりの方はいらっしゃいますか?指南のほどよろしくお願いいたします。
最適化
本文には日本語 (ひらがな) を含めてください (スパム防止用)
外していたらすいません。
①tesseractocr.capi.pas
176~177行目の定義が間違っているような気がします
TfnTessBaseAPIInit2 = function(handle: TessBaseAPI; const datapath: PUTF8Char;
const language: PUTF8Char; oem: TessOcrEngineMode): int; cdecl;
↓
TfnTessBaseAPIInit2 = function(handle: TessBaseAPI; const datapath: PUTF8Char;
const language: PUTF8Char; oem: int): int; cdecl;
②tesseractocr.pas
197~198行目 上記に伴い以下のように変更が必要かもです
Result := TessBaseAPIInit2(FTessBaseAPI, PUTF8Char(UTF8Encode(FDataPath)),
PUTF8Char(UTF8Encode(ALanguage)), TessOcrEngineMode(AEngineMode)) = 0;
↓
Result := TessBaseAPIInit2(FTessBaseAPI, PUTF8Char(AnsiString(FDataPath)),
PUTF8Char(AnsiString(ALanguage)), Int(Ord(AEngineMode))) = 0;
上記①②によりDegubモードでも動作しましたが、
「Release」と「Debug」で動きが違うように感じます。
他にも
pvt.cppan.demo.google.tesseract.libtesseract-master.dll
のエクスポートされた関数の定義が違う箇所が有るのかもしれません。
ツイート | ![]() |