Python将PDF按页拆分为图片,并OCR识别为文本【windows,主要使用模块/工具包括wand、pytesseract、PIL等,附下载及安装】

本文主要是介绍Python将PDF按页拆分为图片,并OCR识别为文本【windows,主要使用模块/工具包括wand、pytesseract、PIL等,附下载及安装】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python将PDF按页拆分为图片,并OCR识别为文本

  • 下载所需安装包并完成安装
    • 1、下载并安装tesseract-ocr
    • 2、下载并安装imagemagic
    • 3、下载并安装Ghostscript
  • PFD转成jpeg图片,并识别成文本

下载所需安装包并完成安装

1、下载并安装tesseract-ocr

链接:https://pan.baidu.com/s/1FypYuviozcC4J0_1IR6hmQ
提取码:e28y
在这里插入图片描述
双击安装,默认下一步,并在这里选择简单中文:
在这里插入图片描述
选择安装目录,并记住安装路径,因为后续安装完成之后需要设置环境变量:

在这里插入图片描述

然后一直默认完成安装即可,完成后会在安装目录下看到文件夹:
在这里插入图片描述
设置环境变量,“我的电脑”->右键,选择“属性”–>“高级系统设置”–>“环境变量”–>“系统变量”–>找到“path”后点击编辑,然后新建,将刚刚完成的安装目录添加到“path”中:
在这里插入图片描述
同时新增一条“系统变量”,如下:
在这里插入图片描述

打开cmd,输入tesseract -V查看,若显示如下则表示安装成功:
在这里插入图片描述
使用tesseract a.jpg a -l chi_sim测试一下识别效果:
在这里插入图片描述
会生成一个名为a.txt的文件,里面保存有文本信息:
在这里插入图片描述
最后,为了在python中可以使用tesseract,需要安装pytesseract包来实现对Tesseract的调用(在命令行中使用tesseract,在python脚本中使用pytesseract)。使用 pip 安装 pytesseract; Pillow ,用于加载磁盘中的图像;pyocr,tesseractPython接口中的另一个:

pip install pillow
pip install pytesseract
pip install pyocr

示例:用python调用识别图片,有直接的函数:

text=pytesseract.image_to_string(PI.open(r'E:\a.jpg'),lang='chi_sim')
print(text)

在这里插入图片描述

2、下载并安装imagemagic

链接:https://pan.baidu.com/s/1monXyx3u5EH2FIeDa3waEQ
提取码:qbac
在这里插入图片描述
双击开始安装,点击下一步,注意在这里选择添加环境变量,否则要手动添加环境变量:
在这里插入图片描述
然后跟上面安装tesseract-ocr类似一直点击下一步完成安装即可(注意,大家根据具体情况可以选择安装目录):
在这里插入图片描述
可以去环境变量中查看到安装过程中已经自动配置好了环境变量。
打开cmd,使用magick --version 查看是否安装成功:
在这里插入图片描述
如上所示,安装成功。
为了使python能够调用成功,这里需要在python中安装模块wand

pip install wand

3、下载并安装Ghostscript

imagemagic在调用的时候会使用到Ghostscript这个依赖,如果没有的话会报错。
链接:https://pan.baidu.com/s/1HqzgSczZsRjF7oCj7ENZvg
提取码:32ql
在这里插入图片描述
双击安装,选择安装路径:
在这里插入图片描述
完成安装后,需要手动配置环境变量:
在这里插入图片描述
打开cmd,使用gswin32或者gswin64查看是否安装成功,若跳出如下右边窗口则说明安装成功:
在这里插入图片描述

PFD转成jpeg图片,并识别成文本

以上所需要的模块完成安装后,准备工作完成。

下面是PFD转成jpeg图片,并识别成文本的代码:

import io
from wand.image import Image #需要提前手动安装imagemagic,可从百度云下载,手动安装Ghostscript
from PIL import Image as PI
import pyocr#pip install
import pyocr.builders
import pytesseract #pip install,需要提前手动安装tesseract,可从百度云下载#重要!如果有报错tesseract环境变量的问题,说明发现两个环境变量的设置没有起作用,因此在python中可以重新设置一下
import os
#os.environ["PATH"]  #查看在PATH中有没有tesseract相关路径,没有则添加,注意改为你的相应安装路径
os.environ["PATH"] +=  os.pathsep + 'E:\Tesseract-OCR'
#'TESSDATA_PREFIX' in os.environ  #查看是否有新增TESSDATA_PREFIX的这个环境变量,没有则添加,注意改为你的相应安装路径
os.environ['TESSDATA_PREFIX']='E:\Tesseract-OCR'#设置识别识别工具
tool = pyocr.get_available_tools()[0]
#设置使用的语言,因为我们要识别的PDF是中文的,因此这里选择chi_sim
lang = tool.get_available_languages()[0]#定义列表用于存储图像与文本
req_image = []
final_text = []#采用wand将一个PDF文件转成jpeg文件,并将PDF中所有的独立页面都转成了独立的二进制图像对象
image_pdf = Image(filename=r"C:\Users\wangrx67\Desktop\审计项目\上下家合同样例1\下家合同.pdf",resolution=300)
with image_pdf.convert('jpeg') as converted:image_jpeg=image_pdf.convert('jpeg')#converted.save(filename='converted.jpeg') #按页进行拆分,并将每一页保存为jpeg格式的图片#遍历这个大对象,并把它们加入到req_image序列中去。
for img in image_jpeg.sequence:img_page = Image(image=img)req_image.append(img_page.make_blob('jpeg'))#在图像对象req_image序列上运行OCR进行识别,按页面变成一个列表
for img in req_image:txt = tool.image_to_string(PI.open(io.BytesIO(img)),lang=lang,builder=pyocr.builders.TextBuilder())final_text.append(txt)#可以将按页的识别列表整合成一个字符串
out_text=''
for i in final_text:out_text += i
out_text=out_text.replace("\n","")  # 因为我识别的文本中有很多空格,所以我将这些特殊“/n”字符都删除
print(out_text)  #out_text即为识别出的字符串文本

最终输出如下所示:
在这里插入图片描述
当然,如果你需要将pdf拆分转存为图片,或者按页识别等等,可以对代码稍微做修改实现。

参考
https://www.jb51.net/article/89955.htm

这篇关于Python将PDF按页拆分为图片,并OCR识别为文本【windows,主要使用模块/工具包括wand、pytesseract、PIL等,附下载及安装】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204788

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传