Python利用Spire.OCR for Python实现从图片中提取文本和坐标

 更新时间:2025年10月10日 08:41:53   作者:Eiceblue  
在数据处理、文档数字化及图像内容分析等开发场景中,光学字符识别(OCR)技术常被用于将图像中的文字转化为可编辑、可搜索的文本格式,Spire.OCR for Python 作为 Python 生态中的一款 OCR 类库,可实现图片文本提取及文字位置定位,下面小编为大家详细说说

引言

在数据处理、文档数字化及图像内容分析等开发场景中,光学字符识别(OCR)技术常被用于将图像中的文字转化为可编辑、可搜索的文本格式。Spire.OCR for Python 作为 Python 生态中的一款 OCR 类库,可实现图片文本提取及文字位置定位,适用于发票信息处理、表单数据解析、截图内容提取等场景,以下从技术特性、实现步骤及应用方向展开介绍。

一、核心技术特性

Spire.OCR for Python 支持 JPG、PNG、BMP、TIFF 四种主流图像格式,在功能设计上具备以下技术特点:

  1. 文本坐标提取能力:可直接获取文字的 X/Y 轴位置、宽度与高度,为后续图像标注、文本区域定位提供数据支持。
  2. 低依赖部署:无需额外配置环境或安装底层库,安装后即可直接调用,降低入门门槛。
  3. 多语言识别支持:涵盖英语、中文、日语、韩语、德语、法语等常用语言,可根据识别场景切换目标语言。

二、OCR文字识别功能实现流程

步骤 1:环境准备与安装

打开电脑的命令提示符(Windows)或终端(macOS/Linux),输入以下 pip 命令,一键完成安装:

pip install Spire.OCR

模型要求:点击下载对应的 OCR 模型文件(Windows系统、Linux系统、 macOS系统 )。解压后保存至本地路径,后续配置时需引用该路径。

步骤 2:模块导入

在 Python 脚本中导入类库核心模块,用于初始化 OCR 扫描实例及配置参数:

from spire.ocr import * # 导入OCR核心功能模块

步骤 3:配置 OCR 依赖项

创建 OCR 扫描对象并设置关键参数,包括模型文件路径与识别语言,参数配置错误会导致识别功能无法正常运行:

# 初始化OCR扫描实例
scanner = OcrScanner()
# 配置引擎参数
configureOptions = ConfigureOptions()
# 模型文件本地路径(需根据实际保存位置修改)
configureOptions.ModelPath = "F:\\OCR Model\\win-x64"
# 识别语言设置(支持"Chinese"、"English"、"Japanese"等)
configureOptions.Language = "Chinese"
# 应用配置参数
scanner.ConfigureDependencies(configureOptions

步骤 4:文本提取与坐标获取

指定目标图像文件路径,执行扫描操作后,可提取文本内容及每个文本块的位置信息:

# 目标图像路径(替换为实际图像文件路径)
target_image = "模板.png"
# 执行OCR扫描
scanner.Scan(target_image)
# 获取扫描结果
ocr_result = scanner.Text
# 提取文本块内容与位置信息
blocks_info = [
    f'文本内容: "{block.Text}"\n'
    f'位置坐标: (x={block.Box.X}, y={block.Box.Y})\n'
    f'文本块尺寸: 宽度{block.Box.Width} x 高度{block.Box.Height}\n'
    f'---------------------------------\n'
    for block in ocr_result.Blocks # 遍历文本块
]

# 打印提取结果(也可根据需求输出至日志或控制台)
print("\n".join(blocks_info))

步骤 5:结果持久化存储

若需留存识别结果,可将文本内容与坐标信息写入本地文件,需指定 UTF-8 编码避免中文乱码:

# 写入TXT文件(追加模式,避免覆盖已有内容)
with open("Ocr文字识别.txt", 'a', encoding='utf-8') as file:
    file.write('\n'.join(blocks_info) + '\n\n')

读取结果:

三、进阶应用与批量处理

1. 批量图像识别实现

针对多图像文件处理场景,可通过遍历文件夹实现批量 OCR 操作,提升处理效率:

import os

image_dir = r'images/'
for filename in os.listdir(image_dir):
    if filename.endswith(('.png', '.jpg', '.jpeg')):
        scanner.Scan(os.path.join(image_dir, filename))
        # OCR识别图片文本

2. 文本坐标的技术应用方向

文本块坐标参数可支撑以下技术场景实现:

  • 图像文本标注:结合 PIL、OpenCV 等图像处理库,根据坐标在原图中绘制矩形框,标注出识别到的文本(比如做数据标注工具);
  • 文档结构分析:通过标题、正文、表格等文本块的坐标分布,判断文档内容层级与布局结构;
  • 关联数据提取:在结构化文档(如表单、发票)处理中,根据关键信息(如金额、项目名称)的坐标,关联提取对应字段数据。

四、常见问题与处理建议

  • 模型路径错误:需确认ModelPath参数与实际模型文件保存路径一致,注意不同操作系统的路径分隔符差异;
  • 文本乱码问题:写入文件时需显式指定 encoding="utf-8",避免中文及特殊字符乱码;
  • 识别准确率波动:识别效果受图像质量影响较大,建议使用清晰度高、文字方向正的图像;若识别特定语言,需确保Language参数与目标语言匹配。

以上就是Python利用Spire.OCR for Python实现从图片中提取文本和坐标的详细内容,更多关于Python OCR图片中提取文本和坐标的资料请关注脚本之家其它相关文章!

相关文章

  • 如何实现Python调用Golang代码详解

    如何实现Python调用Golang代码详解

    这篇文章主要介绍了如何实现Python调用Golang代码,Python和Golang都是当下非常流行的编程语言,在实际开发中,我们可能会遇到需要将Python和Golang进行组合使用的场景,感兴趣想要详细了解可以参考下文
    2023-05-05
  • python实现人脸识别代码

    python实现人脸识别代码

    这篇文章主要介绍了python实现人脸识别代码,还是比较不错的,这里分享个大家,共需要的朋友参考。
    2017-11-11
  • Python3访问MySQL数据库的实现步骤

    Python3访问MySQL数据库的实现步骤

    要实现一个简单的IM(即时通讯)系统,支持用户注册、登录和聊天记录存储,你可以使用Python和mysql数据库,以下是一个基本的实现步骤,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-11-11
  • Python利用Flask动态生成汉字头像

    Python利用Flask动态生成汉字头像

    这篇文章主要为大家详细介绍了Python如何利用Flask动态生成一个汉字头像,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2023-01-01
  • 使用Pandas实现清洗客户编码异常数据

    使用Pandas实现清洗客户编码异常数据

    在不同行业中,我们经常会遇到一个麻烦的问题:数据清洗,尤其是当我们需要处理客户编码异常数据时,下面小编就来和大家分享一下常用的解决办法吧
    2023-07-07
  • Django 项目重命名的实现步骤解析

    Django 项目重命名的实现步骤解析

    这篇文章主要介绍了Django 项目重命名的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Tkinter中复选菜单是否被选中的判断与设置方式

    Tkinter中复选菜单是否被选中的判断与设置方式

    这篇文章主要介绍了Tkinter中复选菜单是否被选中的判断与设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 详解Python中Pandas read_csv参数使用

    详解Python中Pandas read_csv参数使用

    在使用 Pandas 进行数据分析和处理时,read_csv 是一个非常常用的函数,本文将详细介绍 read_csv 函数的各个参数及其用法,希望对大家有所帮助
    2022-10-10
  • python socket多线程实现客户端与服务器连接

    python socket多线程实现客户端与服务器连接

    这篇文章主要为大家详细介绍了python socket多线程实现客户端与服务器连接,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Python lambda和Python def区别分析

    Python lambda和Python def区别分析

    Python支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地方
    2014-11-11

最新评论