文章目录
- 解析pdf数据
- ocr识别
- 分类方法
- 分类完提示
解析pdf数据
试了几种方法
fitz-get_image后面方法不适用,用pixmap分辨率低
用pypdf2版本低方法用不了
用pdf2image还要下依赖工具
用spire.pdf的SaveAsImage分辨率低,ExtractImages可以但运行慢
先用spire.pdf的ExtractImages吧
from spire.pdf.common import ImageFormat
from spire.pdf import PdfDocument# 从PDF文档提取图片,PDF文档的路径,存放图片的文件夹路径
def extract_images_from_pdf(file_path, output_folder):# 创建PdfDocument类的实例doc = PdfDocument()# 加载PDF文档doc.LoadFromFile(file_path)# 创建list来存储提取的图片images = []# 遍历文档的页面for i in range(doc.Pages.Count):# 获取当前页page = doc.Pages.get_Item(i)# 从页面提取图片并存储到listfor img in page.ExtractImages():# print(img)images.append(img)# 将图片保存到指定文件夹for i, image in enumerate(images):image.Save(f"{output_folder}Image-{i+1}.jpg", ImageFormat.get_Jpeg())doc.Close()# 调用函数实现从PDF提取图片
file_path = "副本.pdf"
output_folder = "tup/"
extract_images_from_pdf(file_path, output_folder)
ocr识别
试验几种方法paddleocr umiocr cnocr 微信截图等
识别效果都差不多 最先进的也就这样了,就用cnocr 运行效率高 其他更慢
调了调一些参数,发现不调还好一些
cnocr也和opencv一样不支持中文路径,直接用PIL读取传对象给cnocr就可以
from cnocr import CnOcr # 识别
from PIL import Image
def ocr_cn(path): # 输入图片pathimg=Image.open(path)# print(img)r = ocr.ocr(img)t = [] # 文本for each in r:# print(each['text'])t.append(each['text'])# print(t)return t
分类方法
分类方法有基于规则、基于词频统计、nlp算法-朴素贝叶斯 textcnn什么的
一般数据量小就规则,一般数据量大也先用规则看看 一些能看到的共性可以直接提出来,剩下的再用AI学习
分类完提示
用Tkinter或pyqt做窗口提示和交互
## 分类完提示
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.withdraw()
messagebox.showinfo("提示", "程序运行完成!")
messagebox.showinfo("提示", "分类完成!"+'\n'+'分类成功 条'+'\n'+'分类失败 条')