如何使用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操作摄像头截图实现远程监控的例子
Mar 25 Python
Python对列表中的各项进行关联详解
Aug 15 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
Python实现修改IE注册表功能示例
May 10 Python
如何用Python合并lmdb文件
Jul 02 Python
Python中extend和append的区别讲解
Jan 24 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
Python json转字典字符方法实例解析
Apr 13 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php adodb分页实现代码
2009/03/19 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
JS面向对象编程浅析
2011/08/28 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
jsonp跨域请求实现示例
2017/03/13 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
微信小程序开发实现消息推送
2020/11/18 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python内置函数delattr的具体用法
2017/11/23 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python lxml中etree的简单应用
2019/05/10 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
给幼儿园老师的表扬信
2014/01/19 职场文书
财务总监岗位职责
2014/03/07 职场文书
法人授权委托书范本
2014/04/04 职场文书
教师对学生的评语
2014/04/28 职场文书
小学班主任培训方案
2014/06/04 职场文书
考研英语辞职信
2015/05/13 职场文书
申请吧主发表的感言
2015/08/03 职场文书
公司行政管理制度范本
2015/08/05 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书