如何使用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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
python实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
对python中执行DOS命令的3种方法总结
May 12 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
Python提取频域特征知识点浅析
Mar 04 Python
python与字符编码问题
May 24 Python
让你的Python代码实现类型提示功能
Nov 19 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
python一些性能分析的技巧
Aug 30 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 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 flock 文件锁详细介绍
2012/12/29 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python注释详解
2016/06/01 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
python tkinter实现屏保程序
2019/07/30 Python
python实现超市商品销售管理系统
2019/10/25 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python基于execjs运行js过程解析
2020/11/27 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
八年级生物教学反思
2014/01/22 职场文书
社区中秋节活动方案
2014/01/29 职场文书
学习雷锋倡议书
2014/04/15 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
排查整治工作方案
2014/06/09 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
给老师的一封感谢信
2015/01/20 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
中学社团活动总结
2015/05/07 职场文书
七年级语文教学反思
2016/03/03 职场文书