Python实现PDF图片OCR识别:从转换到提取的完整指南

Mason
Mason
发布时间:2026-10-14| 6人浏览过
原创

本文详解如何利用Python进行PDF图片OCR识别。首先通过PyMuPDF将PDF页面转换为高清图片,再结合Tesseract-OCR引擎提取文字内容。文章涵盖环境配置、代码示例及手写体识别局限性,帮助开发者高效实现文档信息自动化提取。

应用场景

借助图像识别技术,能够迅速且便捷地提取图片内含的关键信息,大幅提升数据处理效率。

由于Python原生不支持直接对PDF文件进行OCR识别,因此处理PDF时需先将其转换为图片格式,随后再执行识别操作。

所需工具

  • Python

建议安装3.7或更高版本的Python环境。

  • 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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。