python提取图片型pdf中的文字(提取pdf扫描件文字)

这篇具有很好参考价值的文章主要介绍了python提取图片型pdf中的文字(提取pdf扫描件文字)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

文字型pdf提取,python的库一大堆,但是图片型pdf和pdf扫描件提取,还是有些难度的,我们需要用到OCR(光学字符识别)功能。

一、准备

1、安装OCR(光学字符识别)支持库

首先要安装pytesseractTesserac OCR,Tesseract OCR是一种广泛使用的OCR工具,它可以用于从图像中提取文字。Tesseract OCR具有较高的识别精度和速度,同时支持多种语言。在Python中,可以使用pytesseract库来调用Tesseract OCR。

(1)安装pytesseract库:
pip install pytesseract
(2)安装Tesseract OCR程序
下载安装

github下载地址:https://github.com/tesseract-ocr/tesseract

国内下载地址:https://digi.bib.uni-mannheim.de/tesseract/

如果要识别中文的话,要安装3.0以上的版本,我这里以国内下载地址为例,下载5.0版本,如图:
python读取扫描件内容,Python,python,pdf,开发语言

下载完成之后,双击打开,一路next即可,自己选择好安装位置,后面要配置环境变量的。

配置环境变量

我的安装位置如图:
python读取扫描件内容,Python,python,pdf,开发语言

找到系统变量的path,点击编辑,如图:

python读取扫描件内容,Python,python,pdf,开发语言

新建一个环境变量,变量的值是tesseract的安装位置,如图:
python读取扫描件内容,Python,python,pdf,开发语言

点击确定之后,在系统变量界面,点击新建,新建一个系统变量,名称为TESSDATA_PREFIX,值为安装目录下的tessdata目录位置,如图:

python读取扫描件内容,Python,python,pdf,开发语言

python读取扫描件内容,Python,python,pdf,开发语言
一路点击确定即可。

下载中文包

软件默认使用的是英文包,只能识别英文,我们现在下载配置中文包,下载地址:

github:https://github.com/tesseract-ocr/tessdata

gitcode(国内):https://gitcode.com/mirrors/tesseract-ocr/tessdata/tree/main?utm_source=csdn_github_accelerator&isLogin=1

建议选择国内地址,下载速度比较快,我们下载五个包,分别是:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata、chi_tra.traineddata、chi_tra_vert.traineddata,如图:
python读取扫描件内容,Python,python,pdf,开发语言
python读取扫描件内容,Python,python,pdf,开发语言

第一个是英文包,后面四个是中文包,sim开头是简体,tra开头是繁体,点击进去,点击右侧的下载,将五个包下载下来,如图:
python读取扫描件内容,Python,python,pdf,开发语言

python读取扫描件内容,Python,python,pdf,开发语言

下载完成之后,复制到tesseract安装目录下的tessdata文件夹下,如图:
python读取扫描件内容,Python,python,pdf,开发语言
在命令行输入tesseract -v,显示tesseract的版本号,就表示安装完成了,如图:
python读取扫描件内容,Python,python,pdf,开发语言

现在安装工作就完成了。

测试图片识别

测试图片如下:
python读取扫描件内容,Python,python,pdf,开发语言
测试代码:

import pytesseract
from PIL import Image

# (1)配置tesseract安装路径
pytesseract.pytesseract.tesseract_cmd = r'F:\tesseract\tesseract.exe'

text = pytesseract.image_to_string(Image.open(r'1-26.jpg'))
print(text)

结果如下:
python读取扫描件内容,Python,python,pdf,开发语言

如果我们不想每次代码都去配置tesseract的安装路径的话,可以直接在源文件里面修改,我们找到如图的文件,将框出来的地方修改成安装路径即可:
python读取扫描件内容,Python,python,pdf,开发语言

(2)安装其他库
pip install PyMuPDF PIL

二、正式提取图片型pdf的文字

代码如下:

# -*- coding: UTF-8 -*-
"""
@Date   :2023/12/17
"""
import fitz
import pytesseract
from PIL import Image
import io

# (1)配置tesseract安装路径
pytesseract.pytesseract.tesseract_cmd = r'F:\tesseract\tesseract.exe'

# (2)打开pdf文件
pdf_file = fitz.open(r'一户一宅.pdf')

# (3)遍历pdf的每一页
for page_num in range(len(pdf_file)):
    # 获取页面
    page = pdf_file[page_num]

    # 提取页面上的图像
    image_list = page.get_images(full=True)

    for image_index, img in enumerate(image_list):
        # 提取图像
        xref = img[0]
        base_image = pdf_file.extract_image(xref)
        image_bytes = base_image["image"]

        # 将字节转换为PIL图像
        image = Image.open(io.BytesIO(image_bytes))

        # 使用pytesseract对图像进行ocr
        text = pytesseract.image_to_string(image, lang='chi_sim')

        # 打印结果
        print(f"Page {page_num + 1}, Image {image_index + 1}:")
        print(text)

# 关闭pdf文件
pdf_file.close()

结果如下:
python读取扫描件内容,Python,python,pdf,开发语言

总结

需要注意的是,Tesseract OCR对于一些复杂或低质量的图像可能识别效果不佳。

提示

对于文字型pdf的提取,可以看这几篇文章:

https://blog.csdn.net/weixin_43856625/article/details/134705266

https://www.jianshu.com/p/8fbb662bd6f7

https://blog.csdn.net/Achernar0208/article/details/129199937文章来源地址https://www.toymoban.com/news/detail-842773.html

到了这里,关于python提取图片型pdf中的文字(提取pdf扫描件文字)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过Python的PyPDF2库提取pdf中的文字

    PyPDF2是一个用于处理PDF文件的Python库,它提供了许多用于读取和操作PDF文件的功能。它可以对PDF文件进行合并、分割、旋转、提取页面、加密和解密等操作,也可以添加文本、图像和水印等元素到PDF文件中。 PyPDF2库允许开发人员通过Python代码轻松地处理PDF文件,因为它提供了

    2024年02月11日
    浏览(63)
  • 【Python • 图片识别】pytesseract快速识别提取图片中的文字

    提示:本文多图,请手机端注意流量。 利用python做图片识别,识别提取图片中的文字会有很多方法,但是想要简单一点怎么办,那就可以使用tesseract识别引擎来实现,一行代码就可以做到提取图片文本。 本程序用到了两个python库,pytesseract和PIL,所以先来安装。 运行以下命

    2024年02月02日
    浏览(43)
  • 通过Python的fitz库提取pdf中的图片

    大家好,我是空空star,本篇给大家分享一下 《通过Python的fitz库提取pdf中的图片》 。 Fitz库是一个Python图像处理库,主要用于打开、编辑和保存PDF、TIFF和JPEG格式的图像。它可以帮助用户读取和写入PDF文件,提取PDF页面以及在页面上进行标记和注释。此外,Fitz库还提供了一些

    2024年02月07日
    浏览(52)
  • 基于Tesseract模块Python实现提取图片中的文字信息(安装+使用教程)

    Python实现提取图片中的文字可以使用Optical Character Recognition (OCR) 技术来解决。OCR是指将图像中的文本转换成可编辑的文本的过程。Python有许多OCR库,但最流行和最广泛使用的是Tesseract库。 下面是一个使用Python和Tesseract来提取图像中的文本的简单示例代码。 OCR,即光学字符识

    2024年02月05日
    浏览(46)
  • 通过Python的PyPDF2库提取pdf中的图片

    大家好,我是空空star,本篇给大家分享一下通过Python的PyPDF2库 提取pdf中的图片 。 上一篇已经给大家分享了 提取pdf中的文字 ,感兴趣的同学可以阅读下。 本篇演示所用python版本: Python 3.8.9 通过Python的PyPDF2库提取pdf中的文字 PyPDF2库是一个用于处理PDF文件的Python库。它提供了

    2024年02月06日
    浏览(50)
  • java读取图片、PDF中图片上的文字

    提示:本文是基于tess4j 总是有一些与众不同的需求在等着研发人员去探索,本文介绍如何通过java读取图片上的文字。 说tess4j之前,先说说Tesseract,因为tess4j是基于它的封装。 Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之

    2024年02月09日
    浏览(65)
  • JAVA PDF 给PDF添加文字/图片水印(指定内容),并且设置位置

    提示:看完这个简单的demo 后就知道怎样去操作一个PDF了 文章目录 前言 一、前提准备 二、使用步骤 1.引入库 2.以下是部分代码的作用 总结 提示:操作PDF其实是一件很简单的事情,比一般的CRUD都简单 例如:我们拿到了一个需求,我需要给这个PDF设置一个 电子签名 ( 就是一

    2024年04月23日
    浏览(47)
  • java中pdfbox处理pdf常用方法(读取、写入、合并、拆分、写文字、写图片)

    方法代码: 测试用例: 2.1写文字 方法代码: 测试用例: A.pdf: A2.pdf: 2.2写图片 方法代码: 测试用例: A.pdf: pic.jpg: A2.pdf: 方法代码: 测试用例: 方法代码: 测试用例: 引用链接: (17条消息) 使用Apache PDFBox实现拆分、合并PDF_似有风中泣的博客-CSDN博客 (17条消息) Java使用P

    2024年02月11日
    浏览(128)
  • java 读取图片中的文字

    解压后的文件库:

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包