C'était très gênant de fusionner des caractères dans le fichier de boîte généré par jTessBoxEditor, donc je l'ai créé. Je ne savais pas si marge améliorerait la précision, mais je l'ai écrit comme un service commémoratif.
Créez le fichier suivant. Collez ce contenu dans jTessBoxEditor pour générer des fichiers tiff, des fichiers box, etc.
text.txt
lettre
tester
la programmation
mgs
Ce programme régénère un fichier boîte qui marge la chaîne de caractères définie dans "text.txt" ligne par ligne dans le fichier boîte. Remplacez le fichier généré par le fichier boîte généré avec le fichier tiff et spécifiez-le lors de l'entraînement avec jTessBoxEditor.
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) #Copiez le fichier d'origine en tant que sauvegarde
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) #Spécifiez le fichier de boîte généré par jTessBoxEditor
Recommended Posts