Pytesseractに問題があります。 Tesseractを構成して、1桁の数字を受け入れるように構成する一方で、数字のゼロはしばしば「O」と混同されるため、数字のみを受け入れることができるように構成する必要があります。
このような:
target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits')
どうもありがとう、
ニール
tesseract-4.0.0a
は以下のpsm
をサポートします。単一の文字を認識したい場合は、psm = 10
を設定します。テキストが数字のみで構成されている場合は、tessedit_char_whitelist=0123456789
を設定できます。
Page segmentation modes:
0 Orientation and script detection (OSD) only.
1 Automatic page segmentation with OSD.
2 Automatic page segmentation, but no OSD, or OCR.
3 Fully automatic page segmentation, but no OSD. (Default)
4 Assume a single column of text of variable sizes.
5 Assume a single uniform block of vertically aligned text.
6 Assume a single uniform block of text.
7 Treat the image as a single text line.
8 Treat the image as a single Word.
9 Treat the image as a single Word in a circle.
10 Treat the image as a single character.
11 Sparse text. Find as much text as possible in no particular order.
12 Sparse text with OSD.
13 Raw line. Treat the image as a single text line,
bypassing hacks that are Tesseract-specific.
以下に、複数のパラメーターを使用したimage_to_string
の使用例を示します。
target = pytesseract.image_to_string(image, lang='eng', boxes=False, \
config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
お役に立てれば。
問題が発生する理由は、バージョン4.0では文字制限が機能しないためです。見つかった文字を制限するには、レガシーモード(oem 0)を強制する必要があります。 tesseractチームのどこかに、まだ対処していないバグがあります。