Ich sah vor kurzem jemanden mit einem T-Shirt mit etwas Perl-Code auf der Rückseite. Ich habe ein Foto davon und abgeschnitten, um den Code:Code vom Foto von T-Shirt über OCR extrahieren
Next Ich habe versucht, den Code aus dem Bild per OCR zu extrahieren, so dass ich installierte Tesseract OCR und die Python-Bindings für sie, pytesser.
Pytesser funktioniert nur auf TIFF-Bilder, so konvertiert ich das Bild in Gimp und trat in den folgenden Code (Ubuntu 9.10):
>>> from pytesser import *
>>> image = Image.open('code.tif')
>>> print image_to_string(image)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pytesser.py", line 30, in image_to_string
util.image_to_scratch(im, scratch_image_name)
File "util.py", line 7, in image_to_scratch
im.save(scratch_image_name, dpi=(200,200))
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1406, in save
save_handler(self, fp, filename)
File "/usr/lib/python2.6/dist-packages/PIL/BmpImagePlugin.py", line 197, in _save
raise IOError("cannot write mode %s as BMP" % im.mode)
IOError: cannot write mode RGBA as BMP
>>> r,g,b,a = image.split()
>>> img = Image.merge("RGB", (r,g,b))
>>> print image_to_string(img)
Tesseract Open Source OCR Engine
éi _ l_` _ t
’ ‘" fY`
{ W IKQW
· __·_ ‘ ·-»·
:W Z
·· I A n 1
;f
` `
`T .' V _ ‘
I {Z.; » ;,. , ; y i- 4 : %:,,
`· » V; ` ?
‘,—·.
H***li¥v·•·}I§¢ ` _ »¢is5#__·¤G$++}§;“»‘7·
71 ’ Q { NH IQ
ytéggygi { ;g¤qg;gm·;,g(g,,3) {3;;+-
§ {Jf**$d$ }‘$p•¢L#d¤ Sc}
» i ` i A1:
Das klar ist Kauderwelsch, dass aus dem OCR-Engine kommt. Also, meine Frage ist:
- Was muss ich tun, um bessere OCR Ergebnisse aus Tesseract zu bekommen?
- Oder hat jemand anderes mehr Glück, den Code aus dem obigen Bild auf andere Weise zu extrahieren?
Ich denke, dass * eigentlich * gültig ist perl ... – PaulMcG
können Sie es einfach neu eingeben. Das wird sicherlich schneller, da es ein einmaliges Projekt zu sein scheint. – SilentGhost
c'mon still, das sieht nach Spaß aus (und wer weiß, ob es eins ist oder nicht?) – KevinDTimm