如何使用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常用内置函数总结
Feb 08 Python
Python中的hypot()方法使用简介
May 18 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
Python工程师面试题 与Python基础语法相关
Jan 14 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
python微信公众号之关键词自动回复
Jun 15 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
使用Python pip怎么升级pip
Aug 11 Python
python爬取代理ip的示例
Dec 18 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/07/26 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python编程实现正则删除命令功能
2017/08/30 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
实习生个人的自我评价
2013/12/08 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
企业文化演讲稿
2014/05/20 职场文书
离职证明标准格式
2014/09/15 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
手残删除python之后的补救方法
2021/06/26 Python
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript