python - 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
解决方案
推荐阅读
- laravel - Laravel eloquent hasManyThrough 模型访问
- visual-studio - 在 platformio-ide-terminal 中构建 CUDA
- css - 将顶部设置为自动时触发 CSS 过渡
- excel - 反向查找(从右到左,FINDrev)函数 Excel UDF
- javascript - 如何使用 web-animations-js 为 div 高度设置动画?
- android - 未找到参数 #1 的改造注释
- php - 在教义 addSelect() 函数中如何正确使用 sql JOIN 和 ON 语句
- c# - 如何为不同的环境配置 Application Insights?
- java - 从通知导航到活动时丢失活动状态
- c# - 在哪里设置 PublishReadyToRun?