如何使用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的Django框架的运行方式及处理流程
Apr 08 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
Python编程之多态用法实例详解
May 19 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
python playwright之元素定位示例详解
Jul 23 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使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
js对象基础实例分析
2015/01/13 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
javascript回调函数详解
2018/02/06 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python使用gensim计算文档相似性
2016/04/10 Python
Python数据结构之翻转链表
2017/02/25 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
基于Python log 的正确打开方式
2018/04/28 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
python绘制玫瑰的实现代码
2020/03/02 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
explicit和implicit的含义
2012/11/15 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
高三体育教学反思
2014/01/29 职场文书
党员干部公开承诺书
2014/03/26 职场文书
出租房屋协议书
2014/09/14 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
优秀团员个人总结
2015/02/26 职场文书
材料采购员岗位职责
2015/04/03 职场文书
大学校园招聘会感想
2015/08/10 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
python内置进制转换函数的操作
2021/06/02 Python
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫