如何使用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使用新浪微博API发送微博的例子
Apr 10 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
python去掉行尾的换行符方法
Jan 04 Python
详解Python核心对象类型字符串
Feb 11 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 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多个文件及图片上传实例详解
2014/11/10 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
PyQt5 pyqt多线程操作入门
2018/05/05 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Python中如何导入类示例详解
2019/04/17 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
简单介绍django提供的加密算法
2019/12/18 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
html5唤醒APP小记
2019/03/27 HTML / CSS
比利时香水网上商店:NOTINO
2018/03/28 全球购物
高职教师岗位职责
2013/12/24 职场文书
白酒市场开发计划书
2014/01/09 职场文书
办理护照介绍信
2014/01/16 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
红头文件任命书范本
2014/06/05 职场文书