[PYTHON] Beschriften Sie die Zeichen der von jTessBoxEditor generierten Boxdatei zeilenweise [Tesseract]

Überblick

Es war sehr mühsam, Zeichen in der von jTessBoxEditor generierten Boxdatei zusammenzuführen, also habe ich sie erstellt. Ich war mir nicht sicher, ob Marge die Genauigkeit verbessern würde, aber ich schrieb es als Gedenkgottesdienst.

Bedingungen

Erstellen Sie die folgende Datei. Fügen Sie diesen Inhalt in jTessBoxEditor ein, um TIFF-Dateien und Box-Dateien zu generieren.

text.txt


Brief
Prüfung
Programmierung
mgs

Programm

Dieses Programm generiert eine Box-Datei neu, die die in "text.txt" definierte Zeichenfolge zeilenweise in der Box-Datei markiert. Ersetzen Sie die generierte Datei durch die Box-Datei, die zusammen mit der TIFF-Datei generiert wurde, und geben Sie sie beim Training mit jTessBoxEditor an.

sample.py


import shutil

def read_words(input_file):
    with open(input_file, "r") as f:    
        data = [ t.replace("\n", "") for t in f.readlines()  ]  

def marge_box(input_file, words):
    with open(input_file, "r") as f:    
        data = [ t.replace("\n", "").split(" ") for t in f.readlines()  ]
        
        res = []
        start = 0
        for word in words:
            length = len(word)
            end = start + length
            tmp = data[start:end]
            print("word", word)
            print("start", start)
            print("end", end)
            print("length", length)
            
            a = [t[1] for t in tmp]
            b = [t[2] for t in tmp]
            c = [t[3] for t in tmp]
            d = [t[4] for t in tmp]
            e = [t[5] for t in tmp]
            a = a[0]
            b = min(b)
            c = max(c)
            d = max(d)
            e = e[0]
            print("abcde", [a, b, c, d, e])
            res.append([word, a, b, c, d, e])
            start += length
        
        shutil.copy(input_file, "copy_" + input_file) #Kopieren Sie die Originaldatei als Backup
    
    with open(input_file, "w", encoding='utf-8') as f:  
        for t in res:
            print(" ".join(t), file=f)

if __name__ == "__main__":
    words = read_words("text.txt")
    marge_box("~~.box", words) #Geben Sie die von jTessBoxEditor generierte Boxdatei an

Recommended Posts

Beschriften Sie die Zeichen der von jTessBoxEditor generierten Boxdatei zeilenweise [Tesseract]
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Die Geschichte des "Lochs" in der Akte
Darstellung der Regressionslinie durch Restdarstellung
So setzen Sie eine Zeilennummer am Anfang einer CSV-Datei