[PYTHON] Generieren Sie mit Pillow (PIL) viele Einzelzeichenbilder.

Motivation

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.

Was ich benutzt habe

Verwenden Sie Pillow (PIL), eine Python-Bildverarbeitungsbibliothek. http://pillow.readthedocs.org/en/3.0.x/index.html

Bild zu erzeugen

Erzeugt ein Bild für jedes Zeichen.

Skript

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.

Englisch (Groß- und Kleinschreibung + Zahl)

eng_char_list = list(string.digits+string.ascii_letters)

(Referenz des String-Moduls → http://docs.python.jp/3.3/library/string.html)

japanisch

Lassen Sie uns unser Bestes geben und die Zeichen aus Wikipedia herausziehen.

Andere Sprachen

(゜ ⊿ ゜) Silan

Hinweis

Referenz

Recommended Posts

Generieren Sie mit Pillow (PIL) viele Einzelzeichenbilder.
Verwenden Sie PIL oder Pillow mit Cygwin Python
Ersetzen Sie Bildfarben schnell durch PIL / Kissen
PIL / Kissen Spickzettel
Bild mit Python-Pptx zentrieren
Bildverarbeitung mit PIL
Konvertieren Sie den Farbraum von RGB nach CIELAB mit PIL (Pillow)
Konvertieren Sie Bilder mit PIL (Python Imaging Library) in Sepia.
Konvertieren Sie verstümmelte gescannte Bilder mit Pillow und PyPDF in PDF
Die Geschichte der Anzeige von Bildern mit OpenCV oder PIL (nur)