使用Python接入OCR文字识别API的全教程

 更新时间:2026年04月16日 09:20:58   作者:石榴树下的七彩鱼  
本文介绍了Python调用OCR API进行文字识别的全过程,包括准备工作、API请求方式、Python接入示例、识别效果示例、常见优化技巧、在线体验与多语言文档等内容,帮助读者快速实现文字识别功能,需要的朋友可以参考下

在开发过程中,我们经常需要对图片进行文字识别,例如身份证识别、发票识别、文档扫描等场景。使用 OCR(Optical Character Recognition,光学字符识别)API 可以快速实现这些功能。本文将以 Python 为例,带你完成 OCR 文字识别 API 接入全过程,并提供在线体验和实用优化建议。

一、准备工作

注册 OCR API 服务
我们以石榴智能OCR接入API为示例,注册后可获得 API KeySecret Key

安装 Python 依赖库

pip install requests pillow
  • requests:用于发送 HTTP 请求
  • Pillow:用于图片处理,可选

准备测试图片
图片可以是身份证、票据、文档扫描件等。

二、API 请求方式简介

OCR API 通常需要发送以下参数:

  • image:图片 Base64 编码或 URL
  • type:识别类型(如 id_cardinvoicegeneral
  • language:可选,多语言识别

示意请求格式:

请求URL:

POST http(s)://ocr-api.shiliuai.com/api/advanced_general_ocr/v1

请求方式:

请求头

参数类型说明
Authorizationstring'APPCODE ' + 您的AppCode
Content-Typestringapplication/json

请求体

参数是否必填类型说明
image_base64选填string图片Base64;与image_url二选一;像素[15,8192];小于20M
image_url选填string图片URL;与image_base64二选一;像素[15,8192];小于20M
is_line选填bool是否为单行文字,默认False

返回信息:

返回结构

参数名类型说明
codeint错误码
msgstring错误信息(英文)
msg_cnstring错误信息(中文)
successbool识别是否成功
image_idstring请求图片ID
request_idstring唯一请求ID
datadata具体看下面

以下是返回示例

data 成功示例:
data = {
       "content":
       [
              {
                     "text": "你好", // string, 文字内容
                     "prob": 0.995, // float, [0, 1], 文字内容置信度
                     "keypoints": [ // list, 文字区域四个角的位置,以文字的左上角为起点,按顺时针顺序排列,单行文字没有此项
                            {"x":50, "y":20},
                            {"x":150, "y":20},
                            {"x":150, "y":60},
                            {"x":50, "y":60}
                            ]
              },
              ......
       ]
}
data 失败示例:
data = {}

三、Python 接入示例

# API文档:https://market.shiliuai.com/doc/advanced-general-ocr
# -*- coding: utf-8 -*-
import requests
import base64
import json

# 请求接口
URL = "https://ocr-api.shiliuai.com/api/general_ocr/v1"

# 图片转base64
def get_base64(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
    b64 = base64.b64encode(data).decode('utf8')
    return b64


def demo(appcode, file_path):
    # 请求头
    headers = {
        'Authorization': 'APPCODE %s' % appcode,
        'Content-Type': 'application/json'
    }
    # 请求体
    b64 = get_base64(file_path)
    data = {"image_base64": b64}
    # 请求
    response = requests.post(url=URL, headers=headers, json=data)
    content = json.loads(response.content)
    print(content)

if __name__=="__main__":
    appcode = "你的APPCODE"
    file_path = "本地图片路径"
    demo(appcode, file_path)

四、识别效果示例

五、常见优化技巧

清晰图片优先
模糊、倾斜、反光的图片识别率低,建议先做简单预处理。

裁剪或分区识别
对身份证、发票等图片按区域识别,可提高精度。

批量或异步处理
对多张图片,可使用队列或多线程异步调用 API。

错误处理
网络异常、识别失败或 API 错误码都需处理,保证程序稳定。

六、在线体验与多语言文档

  • 在线体验:https://market.shiliuai.com/general-ocr
  • 文档支持 Python、Java、PHP、C# 等多语言示例
  • 提供身份证识别、发票识别、通用文字识别等多种接口

七、总结

本文介绍了 Python 调用 OCR API 的完整流程,包括:

  • 注册 API 并获取密钥
  • Python 依赖安装及图片准备
  • API 请求示例及识别结果处理
  • 图片优化和错误处理技巧
  • 在线体验与文档参考

通过 OCR API,你可以快速将文字识别能力集成到网站、桌面应用或移动端应用中,实现身份证识别、票据识别、文档扫描等多场景需求。

以上就是使用Python接入OCR文字识别API的全教程的详细内容,更多关于Python OCR文字识别API接入的资料请关注脚本之家其它相关文章!

相关文章

  • jupyter notebook读取/导出文件/图片实例

    jupyter notebook读取/导出文件/图片实例

    这篇文章主要介绍了jupyter notebook读取/导出文件/图片实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 在Django的视图(View)外使用Session的方法

    在Django的视图(View)外使用Session的方法

    这篇文章主要介绍了在Django的视图(View)外使用Session的方法,Django是最具人气的Python web开发框架,需要的朋友可以参考下
    2015-07-07
  • Python中日志模块logging的最佳实践指南

    Python中日志模块logging的最佳实践指南

    新手常犯的错误是用print()代替日志记录,当项目规模扩大后,这种做法的弊端立刻显现,下面小编就和大家详细讲讲Python中日志模块logging的具体实践吧
    2025-12-12
  • pycharm 无法加载文件activate.ps1的原因分析及解决方法

    pycharm 无法加载文件activate.ps1的原因分析及解决方法

    这篇文章主要介绍了pycharm报错提示:无法加载文件\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本,解决方法终端输入get-executionpolicy,回车返回Restricted即可,需要的朋友可以参考下
    2022-11-11
  • python学习将数据写入文件并保存方法

    python学习将数据写入文件并保存方法

    在本篇文章里小编给大家分享的是关于python将数据写入文件并保存的实例内容,需要的朋友们可以学习下。
    2020-06-06
  • Python接口自动化浅析logging日志原理及模块操作流程

    Python接口自动化浅析logging日志原理及模块操作流程

    这篇文章主要为大家介绍了Python接口自动化系列文章浅析logging日志原理及模块操作流程,文中详细说明了为什么需要日志?日志是什么?以及日志用途等基本的原理
    2021-08-08
  • 如何将python文件打包成exe可运行文件

    如何将python文件打包成exe可运行文件

    这篇文章主要介绍了将python文件打包成exe可运行文件的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python+Pygame实战之炫舞小游戏的实现

    Python+Pygame实战之炫舞小游戏的实现

    提到QQ炫舞,可能很多人想到的第一个词是“青春”。恍然间,这个承载了无数人回忆与时光的游戏品牌,已经走到了第十几个年头。今天小编就来给大家尝试做一款简单的简陋版的小游戏——《舞动青春*炫舞》,感兴趣的可以了解一下
    2022-12-12
  • python多维数组分位数的求取方式

    python多维数组分位数的求取方式

    这篇文章主要介绍了python多维数组分位数的求取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python学习数据结构实例代码

    python学习数据结构实例代码

    数据结构就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。本文将通过实例来介绍这些数据结构的用法。
    2015-05-05

最新评论