1.ImageMagick
2.tesseract-OCR
3.Python3.7
4.from PIL import Image as PI
5.import io
6.import os
7.import pyocr .builders
8.from cnocr import CnOcr
9.import xlwt
Bei der Analyse des obigen Bildes haben wir festgestellt, dass der Rechnungsbetrag „zweihunderttausend Yuan“ beträgt und der Datenbetrag in chinesischen Großbuchstaben angegeben ist Vor dem Import in Excel müssen wir die Daten der Betragsrechnung in ein numerisches Format konvertieren. Auf dieser Grundlage müssen wir zunächst die Konvertierung der chinesischen Großbuchstaben und Zahlen abschließen.
def chineseNumber2Int(strNum: str): result = 0 temp = 1 # 存放一个单位的数字如:十万 count = 0 # 判断是否有chArr cnArr = ['壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'] chArr = ['拾', '佰', '仟', '万', '亿'] for i in range(len(strNum)): b = True c = strNum[i] for j in range(len(cnArr)): if c == cnArr[j]: if count != 0: result += temp count = 0 temp = j + 1 b = False break if b: for j in range(len(chArr)): if c == chArr[j]: if j == 0: temp *= 10 elif j == 1: temp *= 100 elif j == 2: temp *= 1000 elif j == 3: temp *= 10000 elif j == 4: temp *= 100000000 count += 1 if i == len(strNum) - 1: result += temp return result
Der obige Code kann zum Konvertieren von Großbuchstaben und Zahlen verwendet werden. Geben Sie beispielsweise „Zwanzigtausend Yuan“ ein, um „200000“ zu exportieren, und konvertieren Sie ihn dann in Zahlen, um die Bedienung der Tabelle erheblich zu vereinfachen ist hilfreich für die Datenarchivierung beim Ausführen von Tabellenoperationen.
Als nächstes müssen wir den internen Inhalt der Rechnung analysieren. Aus der Analyse der folgenden Abbildung können wir ersehen, dass wir die folgenden Daten erhalten müssen: „Ausstellungsdatum“, „Eingangsdatum des Wechsels“, „Rechnung“. Nummer“, „Zahlungsempfänger“, „Rechnungsbetrag“ und „Schublade“ können mithilfe einer Zeichensoftware genau positioniert werden.
Wie im Bild gezeigt, ist der kleine schwarze Punkt der Ort, an dem sich die Maus befindet, und die untere linke Ecke der Zeichensoftware sind ihre Koordinaten. Extrahieren Sie das Ausstellungsdatum der Rechnung reee
Nach all dem Daten wurden extrahiert. Danach müssen wir in der Einrichtungsphase zunächst alle Rechnungsdateien extrahieren und deren Dateinamen und Pfade ermitteln.def text1(new_img): #提取出票日期 left = 80 top = 143 right = 162 bottom = 162 image_text1 = new_img.crop((left, top, right, bottom)) #展示图片 #image_text1.show() txt1 = tool.image_to_string(image_text1) print(txt1) return str(txt1)
def text2(new_img): #提取金额 left = 224 top = 355 right = 585 bottom = 380 image_text2 = new_img.crop((left, top, right, bottom)) #展示图片 #image_text2.show() image_text2.save("img/tmp.png") temp = ocr.ocr("img/tmp.png") temp="".join(temp[0]) txt2=chineseNumber2Int(temp) print(txt2) return txt2
def text3(new_img): #提取出票人 left = 177 top = 207 right = 506 bottom = 231 image_text3 = new_img.crop((left, top, right, bottom)) #展示图片 #image_text3.show() image_text3.save("img/tmp.png") temp = ocr.ocr("img/tmp.png") txt3="".join(temp[0]) print(txt3) return txt3
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Batch-Datenextraktion über Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!