OCR提取影印版PDF文档的中日英三种文字

影印版PDF文档的中日英三种文字提取

影印版的 PDF 文档由于是扫描或影印得到的图像,无法直接提取其中的文字。因此,我们需要使用 OCR 技术来识别并提取图片中的文字。

上python代码

import fitz  # PyMuPDF
from PIL import Image
import pytesseract
import io
from loguru import logger# 添加日志记录
logger.add(r"FileFetcher\log.log", rotation='10MB', format="{time} {level} {message}", compression='zip', retention="72h")
# 设置 tesseract 的路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 定义 PDF 路径
pdf_path = r'XXX.pdf'
# 打开 PDF 文件
pdf_document = fitz.open(pdf_path)# 打开输出文件
with open(r'FileFetcher\output.txt', 'w', encoding='utf-8') as f:# 遍历 PDF 的每一页for page_num in range(len(pdf_document)):page = pdf_document[page_num]# 获取当前页的所有图片image_list = page.get_images(full=True)# 遍历当前页的所有图片for img_index, img in enumerate(image_list):# 获取图片的 xrefxref = img[0]# 提取图片base_image = pdf_document.extract_image(xref)# 获取图片的字节数据image_bytes = base_image["image"]# 将字节数据转换为图片image = Image.open(io.BytesIO(image_bytes))# 使用 tesseract 识别图片中的文字text = pytesseract.image_to_string(image, lang='chi_sim+eng')# 将识别的文字写入输出文件f.write(f"Page {page_num + 1}, Image {img_index + 1}: {text}\n")# 记录日志logger.info(f"Page {page_num + 1}, Image {img_index + 1}: {text}")# 输出提示信息
print("内容已成功写入 TXT 文件。")
# 关闭 PDF 文件
pdf_document.close()

安装 Tesseract-OCR 指南

Tesseract OCR 是一款由 HP 实验室开发并由 Google 维护的开源光学字符识别引擎。以下是在 Windows 系统中安装 Tesseract OCR 的详细步骤:

1. 下载安装包

访问 Tesseract OCR 下载页面,选择与你的系统架构相匹配的安装包进行下载,例如 tesseract-ocr-w64-setup-5.3.4.20240503.exe

2. 安装 Tesseract OCR

下载完成后,运行 .exe 文件并遵循安装向导的提示完成安装。在安装过程中,你可以选择是否下载额外的语言包。如果没有 VPN 来加速下载,建议跳过语言包的安装,稍后单独下载。

3. 配置系统环境变量(可选)

虽然不是必需的,但配置环境变量可以让你在任何路径下都能调用 Tesseract 命令。在“设置”中搜索“环境变量”,然后在“系统变量”中找到并编辑 Path 变量,添加 Tesseract 的安装路径。

4. 验证安装

如果未设置环境变量,需要先导航到 Tesseract 的安装目录。打开命令行窗口,输入 tesseract -v 来验证 Tesseract 是否正确安装。如果命令行显示版本信息,则表示安装成功。

5. 下载语言包

若需识别特定语言,可能需要下载相应的语言包。访问 Tesseract GitHub tessdata 仓库 下载语言包,然后将下载的语言包文件放入 Tesseract 安装目录下的 tessdata 文件夹中。

5. 1 下载并安装中文语言包
  • 访问 Tesseract 的 GitHub tessdata 仓库。
  • 下载 chi_sim.traineddata 文件,这是用于简体中文的语言包。
  • 将下载的 chi_sim.traineddata 文件复制到 Tesseract 的 tessdata 目录下,默认路径为 C:\Program Files\Tesseract-OCR\tessdata\
  • 安装完成后,运行 tesseract --list-langs 命令来确认中文语言包已经正确安装。

6. 在 Python 中使用 Tesseract

若计划在 Python 项目中使用 OCR 功能,可通过 pip 安装 pytesseract 库。此外,可能需要在 pytesseract.py 文件中指定 Tesseract 的路径,以便 Python 能够调用 Tesseract。

按照以上步骤,你应该能够在 Windows 系统中成功安装并配置 Tesseract OCR。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/451428.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite 上手指南 -- 基础语法

目录 一、数据库操作1.1 新建数据库1.2 查看数据库1.3 查看帮助指令 二、表操作2.1 创建表2.2 表信息2.3 表索引信息2.4 表结构信息2.5 删除表 三、数据记录操作3.1 新增记录3.2 查看记录3.3 不同格式输出 四、运算符4.1 算术运算符4.2 比较运算符4.3 逻辑运算符4.4 位运算符 S…

【热门】用ChatGPT做智慧农业云平台——农业ERP管控系统

随着科技的进步,原有农业种植方式已经不能满足社会发展的需要,必须对传统的农业进行技术更新和改造。经过多年的实践,人们总结出一种新的种植方法——温室农业,即“用人工设施控制环境因素,使作物获得最适宜的生长条件,从而延长生产季节,获得最佳的产出”。这种农业生产方式…

Linux安装 php5.6

Linux安装 php5.6.30 下载-解压-配置-安装 下载到 /usr/local wget http://am1.php.net/distributions/php-5.6.30.tar.gztar -zxvf php-5.6.30.tar.gz cd php-5.6.30#编译配置 ./configure --prefix/usr/local/php --with-curl/usr/local/curl --with-freetype-dir --wit…

无mac电脑在苹果开发者上传构建版本

我们登录苹果开发者网站的后台,进入app store后,发现上架的页面需要上传一个构建版本。 这个构建版本的意思就是我们的应用二进制文件,是上架最重要的文件。但是在苹果开发者后台是无法直接上传这个文件的,它提示我们可以使用xco…

R语言机器学习教程大纲

文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…

服务器托管的优缺点有哪些?

由于数字化程度不断提高,服务器在日常业务中发挥着越来越重要的作用。在大多数情况下,服务器由公司自己维护和管理。但对于一些公司来说,托管服务器(将这些任务交给专业人员)是更好的选择。 关于服务器的优缺点,有一点是明确的&am…

【SpringBoot】16 文件上传(Thymeleaf + MySQL)

Gitee仓库 https://gitee.com/Lin_DH/system 介绍 文件上传是指将本地的图片、视频、音频等文件上传到服务器,供其他用户浏览下载的过程,文件上传在日常项目中用的非常广泛。 实现代码 第一步:在配置文件新增如下配置 application.yml s…

浏览器实时更新esp32-c3 Supermini http server 数据

一利用此程序的思路就可以用浏览器显示esp32 采集的各种传感器的数据,也可以去控制各种传感器。省去编写针对各系统的app. 图片 1.浏览器每隔1秒更新一次数据 2.现在更新的是开机数据,运用此程序,可以实时显示各种传感器的实时数据 3.es…

鸿蒙网络编程系列27-HTTPS服务端证书的四种校验方式示例

1. 服务端数字证书验证的问题 在鸿蒙客户端对服务端发起HTTPS请求时,如果使用HttpRequest的request发起请求,那么就存在服务端数字证书的验证问题,你只有两个选择,一个是使用系统的CA,一个是使用自己选定的CA&#xf…

C++初阶

目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C11) 1.auto的使用细则 八.基于范围…

【Spring声明式事务失效的12种场景测试】

文章目录 一.Spring声明式事务是什么?二.Spring事务失效的12种场景1.访问权限问题 小结 一.Spring声明式事务是什么? Spring声明式事务是一种通过配置的方式管理事务的方法,它通过注解或XML配置来声明哪些方法需要事务管理,从而将…

杨氏矩阵(有一个数字矩阵,矩阵的每行从左到右的递增的,矩阵从上到下是递增的请编写一个程序,在这样的矩阵中查找某个数字是否存在)

//杨氏矩阵 //有一个数字矩阵&#xff0c;矩阵的每行从左到右的递增的&#xff0c;矩阵从上到下是递增的 //请编写一个程序&#xff0c;在这样的矩阵中查找某个数字是否存在 // 1 2 3 // 4 5 6 // 7 8 9 #include<stdio.h> int main() {int a[3][3] { 0 };int i 0, j …

数据库管理-第252期 深入浅出多主多活数据库技术- Cantian存储引擎(二)(20241017)

数据库管理252期 2024-10-17 数据库管理-第252期 深入浅出多主多活数据库技术- Cantian存储引擎&#xff08;二&#xff09;&#xff08;20241017&#xff09;1 部署规划2 服务器基础配置2.1 配置HOSTS2.2 关闭防火墙2.3 关闭SELinux2.4 配置yum源 3 编译服务器配置3.1 安装git…

Vue Google 广告的配置

前置条件&#xff1a;已经在Google AdSense 中 添加网站 并通过审核 同时已创建广告单元。 因 VUE 的 Script 配置问题&#xff0c;所以不能直接拷贝内容。 index.html 配置 添加 Google 广告的脚本。 //index.template.html /* * 在head标签中添加 script 【 **** 】&#…

网络变压器在PCIe网口应用的案例

PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;是一种高速串行计算机总线标准&#xff0c;用于连接计算机主板上的设备&#xff0c;如显卡、网络适配器、存储控制器等。H82422S 网络变压器&#xff08;Ethernet Transformer&#xff09;&#xff0c;在…

SSM框架学习(七、MyBatis-Plus高级用法:最优化持久层开发)

目录 一、MyBatis-Plus快速入门 1.简介 2.快速入门 二、MyBatis-Plus核心功能 1.基于Mapper接口CRUD &#xff08;1&#xff09;Insert 方法 &#xff08;2&#xff09;Delete方法 &#xff08;3&#xff09;Update 方法 &#xff08;4&#xff09;Select方法 2.基于Serv…

使用LangGraph构建多Agent系统架构!

0 前言 Agent是一个使用大语言模型决定应用程序控制流的系统。随着这些系统的开发&#xff0c;它们随时间推移变得复杂&#xff0c;使管理和扩展更困难。如你可能会遇到&#xff1a; Agent拥有太多的工具可供使用&#xff0c;对接下来应该调用哪个工具做出糟糕决策上下文过于…

重塑企业数字化未来:物联网与微服务架构的战略性深度融合

从物联网到微服务架构的战略价值解读 随着全球数字化转型的不断加速&#xff0c;企业需要重新审视其技术基础架构&#xff0c;以适应日益复杂的业务需求和市场变化。物联网&#xff08;IoT&#xff09;作为核心技术&#xff0c;已广泛应用于制造、农业、交通、医疗等各个行业&…

Qt 支持打包成安卓

1. 打开维护Qt&#xff0c;双击MaintenanceTool.exe 2.登陆进去,默认是添加或移除组件&#xff0c;点击下一步&#xff0c; 勾选Android, 点击下一步 3.更新安装中 4.进度100%&#xff0c;完成安装&#xff0c;重启。 5.打开 Qt Creator&#xff0c;编辑-》Preferences... 6.进…

比亚迪车机安装第三方应用教程

比亚迪车机安装第三方应用教程 比亚迪车机U盘安装APP&#xff0c; 无论是dlink3.0还是4.0都是安卓系统&#xff0c;因此理论上安卓应用是都可以安装的&#xff0c;主要就是横屏和竖屏的区别。在比亚迪上安装软件我主要推荐两种方法。 第一种&#xff0c;直接从电脑端下载安装布…