2

画像の文字を認識するためにTessearctOCRを使用しています。しかし、OCRを使用して数字を無視したい

_tesseract->SetVariable("tessedit_char_blacklist", "0123456789");

このように、OCRは数字文字を認識しませんが、不要な文字の代わりに他の文字を提供してくれます。

例:テキストがUSD 12の画像がありますが、その画像にOCRを適用すると、USDflが表示されます

上で見ることができるように、OCRは12を私が望まないflに変換しました。12をOCRで無視したい。

USDflではなくUSDとして 結果を得る方法はありますか

そのための解決策を教えてください。どんな助けでもかなりあります。

4

2 に答える 2

6

メソッドについては、このコメントを参照してくださいSetVariable()

// For most variables, it is wise to set them before calling Init.

Init私はあなたと同じ問題を抱えていて、それを修正する前にコードを移動しました:

tess = new TessBaseAPI();    
tess->SetVariable("tessedit_char_whitelist", 
   "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
tess->SimpleInit([dataPath cStringUsingEncoding:NSUTF8StringEncoding],  
   "eng", false);
于 2013-08-05T09:08:37.000 に答える
4

それtessedit_char_blacklistは目的ではありません。tessedit_char_blacklist数字が画像に含まれないことを保証します。Tesseractに間違った情報を伝えると、悪い結果が得られます。

代わりに必要なのは、Tesseractの出力を後処理することです。正しいOCRを出力してから、数字の文字を削除します。

于 2015-09-17T15:48:35.427 に答える