当前位置: 首页 > news >正文

图文识别0难度上手~基于飞浆对pdf简易ocr并转txt

在这里插入图片描述

前言

本篇pdf适用windows对视觉识别0基础的的纯小白用户。大佬请绕道~~
注意:
本项目pdf的ocr对于表格、画图文字,水印等干扰没做任何处理,因此希望各位使用该功能的pdf尽量不要含有这些干扰项,以免影响翻译效果。

流程

1.构建环境

用conda创建一个虚拟python环境

conda crate -n pp python==3.11

2.安装包

安装飞浆paddle 和paddleocr
gpu版本

pip install paddlepaddle-gpu paddleocr

cpu版本

pip install paddlepaddle paddleocr

pdf转图片工具

https://github.com/oschwartz10612/poppler-windows/releases

pip install pdf2image

3.具体代码

假设在我们有一堆pdf文件在pdfs文件夹中,我们需要将其每个pdf文件转成对应的txt文件。则可使用如下代码


from pdf2image import convert_from_path
import cv2
import numpy as np
from PIL import Image
import os
# 将 PDF 文件转换为图片列表
files = os.listdir('pdf')for file in files:if not file.endswith('.pdf'):print(file)continuetxt = file.replace('.pdf', '.txt')if os.path.exists('txt/'+txt):continuetxt_writer = open('txt/'+txt, 'w',encoding='utf-8')images = convert_from_path('pdf/'+file)# print(type(images))# print(images[0])# image = cv2.cvtColor(np.array(images[0]), cv2.COLOR_RGB2BGR)from paddleocr import PaddleOCR, draw_ocr# 创建 PaddleOCR 实例ocr = PaddleOCR(use_angle_cls=True, lang='ch',use_gpu=True)  # 默认使用英文模型,可以通过 lang 参数切换到中文模型# 遍历每一张图片并识别文字for i, image in enumerate(images):print('第{}张图片'.format(i+1))# 转换图片为可用于识别的格式# source = image.convert('RGB')image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)        # image.save(f'page_{i}.jpg')# 识别图片中的文字result = ocr.ocr(image, cls=True)# 打印识别结果try:for lines in result:for line in lines:# print(line[1][0])txt_writer.write(line[1][0]+'\n')except:print(file+'识别失败')txt_writer.close()

4.注意

由于本代码仅能简单提取pdf的文字,所以一旦出图片或者表格之类会导致该页识别效果变差,敬请谅解~

http://www.lryc.cn/news/392934.html

相关文章:

  • FFmpeg常用命令手册
  • CTF入门知识点
  • Leetcode 完美数
  • springboot中的定时任务编写
  • 第100+14步 ChatGPT学习:R实现随机森林分类
  • C#面 :ASP.Net Core中有哪些异常处理的方案?
  • 论文辅导 | 基于多尺度分解的LSTM⁃ARIMA锂电池寿命预测
  • 开关阀(4):对于客户技术要求信息的识别
  • Python统计实战:时间序列分析之二阶曲线预测和三阶曲线预测
  • Drools开源业务规则引擎(三)- 事件模型(Event Model)
  • 智慧校园行政办公升级,日程监控不可或缺
  • RedHat运维-Linux SSH基础3-sshd守护进程
  • 医院产科信息化管理系统源码,智慧产科管理系统,涵盖了从孕妇到医院初次建档、历次产检、住院分娩、统计上报到产后42天全部医院服务的信息化管理。
  • Softmax作为分类任务中神经网络输出层的优劣分析
  • 404白色唯美动态页面源码
  • 细说MCU的ADC模块单通道连续采样的实现方法
  • H2 Database Console未授权访问漏洞封堵
  • 基于java+springboot+vue实现的药店管理系统(文末源码+Lw)285
  • 网络爬虫基础
  • js数组方法归纳——push、pop、unshift、shift
  • VPN是什么?
  • 浅析DDoS高防数据中心网络
  • 《安全行业大模型技术应用态势发展报告(2024)》
  • 【基于R语言群体遗传学】-4-统计建模与算法(statistical tests and algorithm)
  • Java springboot校园管理系统源码
  • Lianwei 安全周报|2024.07.01
  • 柯桥职场英语学习商务英语口语生活英语培训生活口语学习
  • Spring与Quartz整合
  • C++之static关键字
  • 嵌入式学习——硬件(Linux内核驱动编程platform、内核定时器、DS18B20)——day61