2017-05-22 7 views
1

私は数字に解析したいおおよそこの形式の画像を持っている: Image that should be parsed.Pythonの3 OCR

を私はpytesseractモジュールを使用しようとしましたが、結果が欠けていることが判明しています。場合によっては56と続きます。私はまた、一般的に0と解釈されたので、色のついた円を手動で検出することを強いられました。

サンプルコードを使用:

import pytesseract 
from PIL import Image 
img = Image.open("foo.png") 
print(pytesseract.image_to_string(img)) 

> 150150150 

は、私は、例えば、黄色の円がyellow、たとえば、として表現されるカスタム文字にマップする、ことを指定することができます方法はありますか?サンプルイメージを解析すると期待される結果は、15 yellow 15 gray 15 brown

のようなものになります。フォントはほとんど一定で、背景色のみがわずかに変化するため、手動でフィードする数字の画像でtesseractを訓練する方法があります実際の画像を特定する前にそれを使用しますか?

答えて

2

Tesseractは通常、特定の言語用に作成されたトレーニングデータに基づいて文字を認識しています。

あなたの場合、私は英語の標準セットがpytesseractによって使用されていると仮定します。

数字とカスタムサークルのみが必要なため、独自のトレーニングデータセットを作成すると結果が向上します。these guidesを参照してください。

標準言語データではなく、カスタムデータでpytesseractを動作させる必要があります。

ユースケース用のカスタムテスデータを作成すると、数字や円の認識が向上しますが、OCRは色を検出するようには設計されていないため、余分な作業を行う必要があります(例:場所のtesseractレポート他のツールまたは単純な色相検出アルゴリズムを使用して色を検出するために "円"の一部分)