如何使用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练习程序批量修改文件名
Jan 16 Python
基于python socketserver框架全面解析
Sep 21 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python闭包函数定义与用法分析
Jul 20 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
Python中一般处理中文的几种方法
Mar 06 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
django restframework serializer 增加自定义字段操作
Jul 15 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使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
解析Python中的二进制位运算符
2015/05/13 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python中cPickle类使用方法详解
2018/08/27 Python
Python内置异常类型全面汇总
2020/05/28 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
从python读取sql的实例方法
2020/07/21 Python
python中pop()函数的语法与实例
2020/12/01 Python
python中time.ctime()实例用法
2021/02/03 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
企业总经理任命书
2014/06/05 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
驳回起诉裁定书
2015/05/19 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android