Python OCR 文字识别 API 接入完整教程

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

一、准备工作

  1. 注册 OCR API 服务

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

  2. 安装 Python 依赖库

    bash 复制代码
    pip install requests pillow
    • requests:用于发送 HTTP 请求

    • Pillow:用于图片处理,可选

  3. 准备测试图片

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

二、API 请求方式简介

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

  • image:图片 Base64 编码或 URL

  • type:识别类型(如 id_cardinvoicegeneral

  • language:可选,多语言识别

示意请求格式:

请求URL:

python 复制代码
POST http(s)://ocr-api.shiliuai.com/api/advanced_general_ocr/v1

请求方式:

请求头

参数 类型 说明
Authorization string 'APPCODE ' + 您的AppCode
Content-Type string application/json

请求体

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

返回信息:

返回结构

参数名 类型 说明
code int 错误码
msg string 错误信息(英文)
msg_cn string 错误信息(中文)
success bool 识别是否成功
image_id string 请求图片ID
request_id string 唯一请求ID
data data 具体看下面

以下是返回示例

python 复制代码
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 接入示例

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)

四、识别效果示例

五、常见优化技巧

  1. 清晰图片优先

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

  2. 裁剪或分区识别

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

  3. 批量或异步处理

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

  4. 错误处理

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

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

七、总结

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

  • 注册 API 并获取密钥

  • Python 依赖安装及图片准备

  • API 请求示例及识别结果处理

  • 图片优化和错误处理技巧

  • 在线体验与文档参考

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

相关推荐
狼与自由2 小时前
Harness
python
枫夜求索阁2 小时前
五一节后复工与AI技能管理的再思考:从手动操作迈向系统化
人工智能
紧固视界2 小时前
想找紧固件设备?6月就来上海紧固件专业展
大数据·人工智能·上海紧固件展·紧固件展·上海紧固件专业展
老马95272 小时前
opencode6-桌面应用实战1
人工智能·后端
xiaoshuaishuai82 小时前
C# DeepSeek V4 与 V3对比
开发语言·c#·量子计算
bluetata2 小时前
AI 浪潮与破局:TypeScript 生态实战,让 AI 为你所用
javascript·人工智能·typescript
易点点2 小时前
Claude Code 云服务部署:阿里云 ECS 环境下的落地指南
人工智能
shehuiyuelaiyuehao2 小时前
算法18,二分查找
java·开发语言·算法
掘金者阿豪2 小时前
NAS搭好了但找不到资源?用Pansou同时搜几十个网盘,帮我省了不少会员钱
后端
沪漂阿龙2 小时前
大模型为什么越来越“听话”?一文讲透强化学习、SFT、DPO
人工智能·机器学习