首页 > 解决方案 > Python OCR IMG 和删除控制字符

问题描述

我想保存到 .docx OCR IMG 文件,但我无法摆脱控制字符。

“ValueError:所有字符串必须与 XML 兼容:Unicode 或 Ascii,无空字节或控制字符”

该文件是来自互联网的示例

import cv2
import numpy as np
import pytesseract
import re
import docx
import os
import string
import unicodedata

#OpenCV
img = cv2.imread("1.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
adaptive_threshold = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 91, 11)

#PyTesseract
config = "--psm 6"
text = pytesseract.image_to_string(adaptive_threshold, config=config, lang="pol")

str_text = str(text.replace("u'", "'"))

# print(str_text)

# To txt file
with open('ocr_text.txt', 'w') as f:
    f.write(str_text)


# To .docx
mydoc = docx.Document()
mydoc.add_paragraph(str_text)
mydoc.save("mydoc.docx")

在此处输入图像描述

ocr_text.txt

PRZYKŁAD FAKTURY VAT DOTYCZĄCEJ SPRZEDAŻY ZŁOMU
Faktura VAT nr FV 152011
(oryginał)
Data wystawienia: 2011-04-14
Data sprzedaży: 2011-04-14
Miejsce wystawienia:
Sprzedawca: Nabywca:
M-złomen PUHP „AMBIT” Sp .z0.0.
Stoińskiego 19 Jaracza 1
45-757 Opole 15-186 Białystok
NIP: 542-896-25-23 NIP: 542-020-68-40
Nazwa towaru lub usługi |PKWiU |Jm  |llość |Cena Stawka Wart. netto |Wart. VAT | Wart. Brutto
netto VAT
Zużyte akumulatory _ |  |Mg_ |0,500 | 8000,00 4.000,00| 920,00 4920,00
4000,00| 920,00 4920,00
5200,00] 920,00 6 120,00
-* odwrotne obciążenie
Forma zapłaty: przelew 7 dni Razem: 6 120,00
Termin zapłaty 2011-04-21 Zaliczka otrzymana: 0,00
Bank: Do zapłaty: 6 120,00
Nr konta: Słownie: sześć tysięcy, sto dwadzieścia złotych 00/100

标签: pythonopencvpython-tesseract

解决方案


推荐阅读