3

私は現在、次のような数値を読み取るためにtesseractを使用する必要があるPythonでスクリプトを書いています:

ここに画像の説明を入力

数字のみと -psm 6 (または 7) を使用すると、5.551 が出力されます。

私は他の数字 (5.700 作品) である程度の成功を収めましたが、この特定の数字は私に多くの問題を与えています. 残念ながら、私のプログラムには高度な精度が必要ですが、tesseract はそのような単純な文字列を解読できると思いました。

私もGOCRを使用しようとしましたが、それは正しく6.881を読み取りました(yay!)が、5.700に対して出力5._00を与えました(ブー!)

なぜこれを行うのか、何か考えはありますか?

またはもっと重要なことに、問題を回避するために私ができることは何でも(できれば tesseract を訓練する必要はありません)。

4

3 に答える 3

2

Imagemagick を使用してサイズを 2 倍にし、透明度を削除 (白に置き換え) し (必要に応じて他のものを使用できます)、強化された画像を Tesseract OCR で正しく処理しました。

$ convert I1Zau.png -background white -flatten -resize 200% I1Zau_2.png
$ tesseract I1Zau_2.png o.txt
$ cat o.txt.txt 
6.881
于 2013-11-13T13:32:33.537 に答える
1

画像の解像度が低すぎる。300 DPI に再スケーリングするだけで、正しい結果が得られました。

于 2013-11-13T23:50:43.687 に答える
1

OCRの世界へようこそ!残念ながら、これらの単純なケースでも、基本的な OCR アプリケーションでは問題になる可能性があります。私が使用して成功した回避策の 1 つは、(imagemagick を使用して) 実際に画像を大きくしてから、Tesseract にフィードすることです。これはある程度までしか機能しません。画像に対してモルフォロジー操作の標準的な手法を試すこともできます。

全体的な要件に応じて (数字は常にこのフォント/サイズになるか、背景にノイズが入るかなど)、Tesseract が使用しているフォント タイプを確実に処理できるように、各数字を手動で個別の画像にしたい場合があります。 . 1桁で機能しない場合は、それを渡す他のもので機能する可能性はほとんどありません.

于 2013-11-13T13:06:48.360 に答える