tesseract
数字だけを認識したい。問題は、数字と文字が混在していてSetVariable("tessedit_char_whitelist", "0123456789")
、すべてのシンボル tesseract に使用すると間違った数字が返されることです。
tesseract
類似性の低いシンボルを除外する ようにしきい値を設定できますか?
注: tesseract
O と 0 を混同しないように、数字のみを認識するように設定しました。
数値のみを認識することは、tesseract の FAQページで実際に回答されています。詳細についてはそのページを参照してください。ただし、バージョン 3 パッケージを使用している場合、構成ファイルは既にセットアップされています。コマンドラインで次のように指定するだけです。
tesseract image.tif outputbase nobatch digits
しきい値に関しては、あなたが何を意味するのかわかりません。入力が通常とは異なるフォントである場合は、入力のサンプルを使用して再トレーニングする可能性があります。別の方法は、tesseract のプルーニングしきい値を変更することです。どちらのオプションも FAQ に記載されています。
tesseract 3 の場合、 FAQtesseract imagename outputbase digits
によると、コマンドはより単純です。しかし、それは私にはうまくいきません。
私はさまざまなオプションを試してみて、自分のケースに最適なpsm
方法を見つけました。-psm 6
man tesseract
詳細については。
tesseract 3 の場合、FAQに従って構成ファイルを作成しようとしています。
Init 関数を呼び出す前に、またはこれを というテキスト ファイルに入れますtessdata/configs/digits
。
tessedit_char_whitelist 0123456789
次に、次のコマンドを使用して機能します。tesseract imagename outputbase digits
add "--psm 7 -c tessedit_char_whitelist=0123456789'" は、画像に 1 行しか含まれていない場合に機能します。
私がしていることは、すべてを認識することです。テキストを取得したら、数字以外のすべての文字を取り出します。
//This replaces all except numbers from 0 to 9
recognizedText = recognizedText.replaceAll("[^0-9]+", " ");
これは私にとってはかなりうまくいきます。