如何使用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 相关文章推荐
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python统计中文字符数量的两种方法
Jan 31 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 28 Python
python元组拆包实现方法
Feb 28 Python
Python必备技巧之字符数据操作详解
Mar 23 Python
Python find()、rfind()方法及作用
Dec 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
香妃
2021/03/03 冲泡冲煮
PHP自动生成表单代码分享
2015/06/19 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
js 目录列举函数
2008/11/06 Javascript
jquery 批量上传图片实现代码
2010/01/28 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
python+requests接口自动化框架的实现
2020/08/31 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
《争吵》教学反思
2014/02/15 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
采购部长岗位职责
2014/06/13 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
公司财务部岗位职责
2015/04/14 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
通知书大全
2015/04/27 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
golang生成vcf通讯录格式文件详情
2022/03/25 Golang