2015-07-26 7 views
5

Ich habe Code mit pytasseract und funktionieren perfekt, nur nicht funktionieren, wenn das Bild, das ich versuche zu erkennen sind 0 bis 9. Wenn Bild nur eine Ziffer haben, geben Sie kein Ergebnis .pytasseract funktionieren nicht mit einer Ziffer Bild

Dies ist ein Beispiel von Bild Ich arbeite https://drive.google.com/folderview?id=0B68PDhV5SW8BdFdWYVRwODBVZk0&usp=sharing

Und dies der Code, den ich

bin mit
import pytesseract 
    varnum= pytesseract.image_to_string(Image.open('images/table/img.jpg')) 
    varnum = float(varnum) 
    print varnum  

Dank !!!!

Mit diesem Code Ich bin in der Lage, alle Zahlen

import pytesseract 


start_time = time.clock() 
y = pytesseract.image_to_string(Image.open('images/table/1.jpg'),config='-psm 10000') 
x = pytesseract.image_to_string(Image.open('images/table/1.jpg'),config='-psm 10000') 

print y 
print x 

y = pytesseract.image_to_string(Image.open('images/table/68.5.jpg'),config='-psm 10000') 
x = pytesseract.image_to_string(Image.open('images/table/68.5.jpg'),config='-psm 10000') 

print y 
print x 

print time.clock() - start_time, "seconds" 

Ergebnis

>>> 
1 
1 
68.5 
68.5 
0.485644155358 seconds 
>>> 
+0

Können Sie versuchen, wie - 'varnum = pytesseract.image_to_string (Image.open ('images/table/img.jpg'), config = "- psm 1") '? –

+0

Oder - 'varnum = pytasseract.image_to_string (Image.open ('images/table/img.jpg'), config =" - psm 10 ")'. –

Antwort

6

Sie müssen lesen würden die Seite Segmentation-Modus einstellen können einzelne Zeichen/Ziffern lesen.

Vom tesseract-ocr manual (was pytesseract intern verwendet), können Sie die Seite Segmentierung Modus eingestellt -

-psm N

Set Tesseract nur eine Teilmenge der Layoutanalyse ausführen und nehmen eine bestimmte Form des Bildes an. Die Optionen für N sind:

10 = Behandeln Sie das Bild als ein einzelnes Zeichen.

So sollten Sie die Option -psm bis 10. Beispiel gesetzt -

varnum= pytesseract.image_to_string(Image.open('images/table/img.jpg'),config='-psm 10')