Aus irgendeinem Grund habe ich beschlossen, OCR in mehreren Sprachen auszuprobieren, aber ich hatte keinen Datensatz, den ich frei verwenden konnte, also musste ich meinen eigenen erstellen, also habe ich ein Skript erstellt.
Verwenden Sie Pillow (PIL), eine Python-Bildverarbeitungsbibliothek. http://pillow.readthedocs.org/en/3.0.x/index.html
Erzeugt ein Bild für jedes Zeichen.
Der Code des generierten Teilkörpers lautet wie folgt.
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
def generate_char_img(char, fontname='Osaka', size=(64, 64)):
img=Image.new('L', size, 'white')
draw = ImageDraw.Draw(img)
fontsize = int(size[0]*0.8)
font = ImageFont.truetype(fontname, fontsize)
# adjust charactor position.
char_displaysize = font.getsize(char)
offset = tuple((si-sc)//2 for si, sc in zip(size, char_displaysize))
assert all(o>=0 for o in offset)
# adjust offset, half value is right size for height axis.
draw.text((offset[0], offset[1]//2), char, font=font, fill='#000')
return img
def save_img(img, filepath):
img.save(filepath, 'png')
Ich habe den gesamten ausführbaren Code in das Wesentliche eingefügt.
https://gist.github.com/lazykyama/dabe526246d60fa937d1
** (2015/10/18 23:47 postscript: Es scheint, dass die Spezifikation von Image.save ()
oder der Dateiname des oberen und unteren Alphabets nicht unterschieden wird, also seien Sie bitte vorsichtig.) **
Gehen Sie wie folgt vor, um eine Zeichenliste für jede Sprache zu erstellen.
eng_char_list = list(string.digits+string.ascii_letters)
(Referenz des String-Moduls → http://docs.python.jp/3.3/library/string.html)
Lassen Sie uns unser Bestes geben und die Zeichen aus Wikipedia herausziehen.
(゜ ⊿ ゜) Silan
* .ttf
-Datei angeben muss.
―― Sobald ich wegen meiner Schwäche davon begeistert warRecommended Posts