当前位置: 首页 > article >正文

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):
            # 获取图片的 xref
            xref = 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.kler.cn/news/365231.html

相关文章:

  • 内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)
  • 瑞芯微的 展会总结
  • 毕业设计—基于 Inception-ResNet模型的皮肤癌分类系统实现
  • 忘记7-zip文件7-zip文件,还可以解压zip文件吗?
  • 《IDE 巧用法宝:使用技巧全解析与优质插件推荐》
  • LabVIEW换流变换器智能巡检系统
  • VUE中文本域默认展示最底部内容
  • C++20中头文件ranges的使用
  • 10.25学习
  • opencv 图像翻转- python 实现
  • 网站建设中需要注意哪些安全问题?----雷池社区版
  • 凯伦股份荣获中国钢结构协会2024年度技术创新奖
  • CentOS7上下载安装 Docker Compose
  • springboot社区网格管理系统-计算机毕业设计源码90901
  • MySQL同步到ES的方案选型
  • Uni-App-01
  • 教学资源的数字化:Spring Boot平台开发
  • 推荐一款USB总线调试工具:常用USB总线调试工具2024秋季版(1.1.10.41018 LTSC)
  • [含文档+PPT+源码等]精品基于springboot实现的原生微信小程序小区兼职系统
  • ES操作:linux命令
  • Redis在实践的关键点
  • JavaScript 第27章:构建工具与自动化
  • mysql 中常用的函数
  • 机器学习——元学习(Meta-learning)
  • YOLO11改进-注意力-引入自集成注意力机制SEAM解决遮挡问题
  • centos7 使用yum卸载redis3.2版本并安装redis5版本