6

I'm trying to detect a few uppercase characters from a screen shot. I convert it to black and white with PIL, and then using the code example from the PyTesser page, I run tesser.exe on the image:

from pytesser import *
image = Image.open('fnord.tif') 
print image_to_string(image)     

I'm using this image: http://i.imgur.com/so419.png

But it doesn't recognize it as an E, or really anything for that matter. I think that it's a clean enough capture? The noise at the top isn't throwing it off, right?

Is there something I'm missing?

4

1 に答える 1

1

ノイズが問題であるかどうかが気になる場合は、MSPaint または同様のもので画像を手動で開き、ノイズを除去してから新しい画像を OCR で実行します。これは、OCR エンジンがどのように機能し、何が混乱を招き、何が混乱を招かないかを学ぶための最良の方法です。すべての OCR エンジンの動作は異なります。

この場合、小さなノイズがキャラクターのゾーニング プロセスを混乱させている可能性があります。OCR エンジンから返された境界ボックスの値をチェックして、OCR エンジンが単語または文字の正しい位置を探しているかどうかを確認する必要があります。

一部の OCR エンジンには、OCR プロセス中に画像からノイズを除去するオプションがあります。これは、多くの場合、斑点除去またはノイズ除去と呼ばれます。現在、最新の Tesseract 画像の一部であるLeptonica ( http://www.leptonica.org ) を使用してノイズを除去することは可能です。

多くの場合、DPI は非常に低いため、スクリーン フォントは OCR エンジンにとって大きな課題となります。「E」の場合、認識されるのに十分な数のピクセルが必要です。ストローク重量が重いと、エンジンが混乱する可能性があります。

また、商用エンジンは通常、Tesseract よりも正確ですが、高価なライセンス料もかかります。

于 2012-09-19T08:27:35.157 に答える