如何使用Python进行PDF图片识别OCR


Posted in Python onJanuary 22, 2021

使用场景

使用图片识别可以快速提取图片中的信息,方便高效。

Python并不能直接对PDF进行识别,所以如果是识别PDF的话,需要先将PDF转化为图片,然后再进行识别。

必备工具

  • Python 

可以安装3.7及以上版本

  • tesseract-ocr 

下载地址: https://github.com/UB-Mannheim/tesseract/wiki 使用最新版本即可

  • 需要用到的库
pip install pillow
pip install opencv-python
pip install fitz
pip install PyMuPDF
pip install pytesseract

代码示例

from PIL import Image
import os
import pytesseract 
import cv2 as cv
import fitz

def pdf_image(pdfPath,imgPath,zoom_x,zoom_y,rotation_angle):
  # 打开PDF文件
  pdf = fitz.open(pdfPath)
  # 逐页读取PDF
  for pg in range(0, pdf.pageCount):
    page = pdf[pg]
    # 设置缩放和旋转系数
    trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle)
    pm = page.getPixmap(matrix=trans, alpha=False)
    # 开始写图像
    pm.writePNG(imgPath+str(pg)+".png")
    #pm.writePNG(imgPath)
  pdf.close()
pdf_path ='D:/123.pdf'
img_path ='D:/123.png'
pdf_image(pdf_path,img_path,5,5,0)
# 依赖opencv
img=cv.imread(img_path)
text=pytesseract.image_to_string(Image.fromarray(img),lang='chi_tra')
# 不依赖opencv写法
# text=pytesseract.image_to_string(Image.open(img_path))
print(text)

总结

识别清晰的文字图片的时候准确率非常高

但是识别手写体的话效果不太好

注意事项

在安装tesseract-ocr 的时候一定要记得选择对应的语言,不然是无法正常使用的。

以上就是如何使用Python进行PDF图片识别OCR的详细内容,更多关于python pdf图片识别ocr的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 获取新浪微博的最新公共微博实例分享
Jul 03 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
深入理解Python爬虫代理池服务
Feb 28 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
python中的RSA加密与解密实例解析
Nov 18 Python
python实现高斯投影正反算方式
Jan 17 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Django实现翻页的示例代码
May 24 Python
详解pandas映射与数据转换
Jan 22 #Python
python实现简单的井字棋游戏(gui界面)
Jan 22 #Python
Django url 路由匹配过程详解
Jan 22 #Python
浅析pandas随机排列与随机抽样
Jan 22 #Python
python 合并多个excel中同名的sheet
Jan 22 #Python
Python读取pdf表格写入excel的方法
Jan 22 #Python
python 基于UDP协议套接字通信的实现
Jan 22 #Python
You might like
php继承的一个应用
2011/09/06 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
Django nginx配置实现过程详解
2020/09/10 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
关于.NET, HTML的五个问题
2012/08/29 面试题
后勤主管工作职责
2013/12/07 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
公司股东出资证明书
2014/11/01 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
高中物理教学反思
2016/02/19 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技