首页 > 其他分享 >TextIn调用API教程及避坑

TextIn调用API教程及避坑

时间:2024-03-13 13:29:24浏览次数:24  
标签:code 10 TextIn 12 text 避坑 88 API 0.99

一. API调用

在工作台中右上角点击获取机器人,进入产品市场,可以看到所有支持识别的类型,这里以通用文字识别为例,点进去后可以发现新用户有免费的1000次额度。

然后点击API文档查看详细使用说明及示例代码

CommonOcr类中的id和和secret_code输入自己的Id和密码,即可实现API调用,非常简单

二. 获取文本

返回的是JSON类型,如下所示

{
    "code": 200,
    "message": "success",
    "version": "v2.0.0",
    "duration": 871.5,
    "result": {
        "angle": 90,
        "width": 1280,
        "height": 1440,
        "lines": [
            {
                "text": "这是一个例子。",
                "score": 0.99,
                "type": "text",
                "position": [
                    0,
                    0,
                    50,
                    0,
                    50,
                    30,
                    0,
                    30
                ],
                "angle": 90,
                "direction": 1,
                "handwritten": 1,
                "char_scores": [
                    0.99,
                    0.98,
                    0.95,
                    0.95,
                    0.99,
                    0.93,
                    0.87
                ],
                "char_centers": [
                    [
                        20,
                        10
                    ],
                    [
                        30,
                        10
                    ],
                    [
                        40,
                        10
                    ],
                    [
                        50,
                        10
                    ],
                    [
                        60,
                        10
                    ],
                    [
                        70,
                        10
                    ],
                    [
                        80,
                        10
                    ]
                ],
                "char_positions": [
                    [
                        18,
                        8,
                        22,
                        8,
                        22,
                        12,
                        18,
                        12
                    ],
                    [
                        28,
                        88,
                        32,
                        8,
                        32,
                        12,
                        28,
                        12
                    ],
                    [
                        38,
                        88,
                        42,
                        8,
                        42,
                        12,
                        38,
                        12
                    ],
                    [
                        48,
                        88,
                        52,
                        8,
                        52,
                        12,
                        48,
                        12
                    ],
                    [
                        58,
                        88,
                        62,
                        8,
                        62,
                        12,
                        58,
                        12
                    ],
                    [
                        68,
                        88,
                        72,
                        8,
                        72,
                        12,
                        68,
                        12
                    ],
                    [
                        78,
                        88,
                        82,
                        8,
                        82,
                        12,
                        78,
                        12
                    ]
                ],
                "char_candidates": [
                    [
                        "这"
                    ],
                    [
                        "是"
                    ],
                    [
                        "一",
                        "-"
                    ],
                    [
                        "个"
                    ],
                    [
                        "例"
                    ],
                    [
                        "子"
                    ],
                    [
                        "。",
                        "O"
                    ]
                ],
                "char_candidates_score": [
                    [
                        0.99
                    ],
                    [
                        0.99
                    ],
                    [
                        0.95,
                        0.05
                    ],
                    [
                        0.99
                    ],
                    [
                        0.99
                    ],
                    [
                        0.99
                    ],
                    [
                        0.89,
                        0.11
                    ]
                ]
            }
        ]
    }
}

其中大部分是无用信息,只有text是我们要的识别内容字符串,为了获取其中的内容,可以执行以下代码:

ans = CommonOcr(img).recognize()

# 将识别的文字转换为字典
data = json.loads(ans)
# 从结果中提取文字
text_list = [line["text"] for line in data["result"]["lines"]]

text_list就是我们要的字符串了,其余参数可以在文档里查看详细介绍

三. 避坑

有时候我们不是传入本地图片,而是传入url,我们如果直接调用request,然后用PIL的Image读取会产生报错,这是因为请求体的数据格式为文件的二进制流。解决办法是创建一个临时文件,将字节对象写进临时文件上传读取,具体代码如下:

import requests
from io import BytesIO
import json
from tempfile import NamedTemporaryFile


# 定义一个函数来识别图片上的文字
def recognize_text(image_url):
    # 发送GET请求到图片URL
    response = requests.get(image_url)

    # 检查请求是否成功
    if response.status_code == 200:
        # 使用BytesIO将响应内容转换为字节对象
        image_bytes = BytesIO(response.content)

        # 创建一个临时文件
        with NamedTemporaryFile(delete=False) as tmp_file:
            # 将字节对象写入临时文件
            tmp_file.write(image_bytes.read())

            # 调用TextIn API来识别文字
            ans = CommonOcr(tmp_file.name).recognize()

            # 将识别的文字转换为字典
            data = json.loads(ans)

            # 从结果中提取文字
            text_list = [line["text"] for line in data["result"]["lines"]]

            # 返回识别到的文字列表
            return text_list
    else:
        # 如果请求失败,返回一个错误信息
        return f"获取图片失败,状态码:{response.status_code}"

错误码说明

错误码描述
40101x-ti-app-id 或 x-ti-secret-code 为空
40102    x-ti-app-id 或 x-ti-secret-code 无效,验证失败
40103    客户端IP不在白名单
40003余额不足,请充值后再使用
40004    参数错误,请查看技术文档,检查传参
40007    机器人不存在或未发布
40005    机器人未开通,请至市场开通后重试
40301    图片类型不支持
40302    上传文件大小不符,文件大小不超过 10M
40303    文件类型不支持
40304    图片尺寸不符,图像宽高须介于 20 和 10000(像素)之间
40305识别文件未上传
30203基础服务故障,请稍后重试
500    服务器内部错误

标签:code,10,TextIn,12,text,避坑,88,API,0.99
From: https://blog.csdn.net/cqcoco/article/details/136676084

相关文章

  • Spring MVC——API(5)
    SpringMVC——API(5)一、实验目的二、实验用的仪器和材料三、实验的步骤和方法四、备注或说明一、实验目的(1)掌握RestfulAPI的开发方法(2)掌握Controller、Service、VO、BO的概念(3)了解参数合法性检查的方法二、实验用的仪器和材料(1)硬件:PC或Mac一台;8G及以上内存,40G硬盘......
  • 【微软】微软程序注册(zfile自建API)
    Zfile支持设置自己的回调地址,怎么设置呢?参考:https://docs.zfile.vip/advanced/onedrive-api/上面文档写的很清楚了,我提醒两点1.进入https://portal.azure.com/之后找不到应用注册在哪的话,直接搜就可以了其他的根据那个链接操作就行,为了防止链接失效,我把页面截图放下面了......
  • React — 请求模块(http)封装、API模块封装
    一、请求模块封装//axios封装//根域名配置//超时//请求拦截器/响应拦截器importaxiosfrom'axios'consthttp=axios.create({baseURL:"",timeout:5000})//在发送请求之前拦截插入自定义配置对于参数的处理http.interceptors.request.use(config......
  • 云打印接口在哪?云打印api怎么找?
    随着云打印的火热发展,很多有大量学生群体的第三方程序都将重心放到了云打印上,而开发云打印功能以及后续的打印业务支持成本较高,这个时候我们就可以选择靠谱、安全的云打印服务平台进行对接,而这种业务合作,就需要用到云打印接口。那么云打印接口在哪?云打印api怎么找?今天就带大家来了......
  • Web API接口 LL
    1.什么是WebAPI接口通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介WebAPI接口和一般的url链接还是有区别的,WebAPI接口简单概括有下面四大特点url:长得像返回数据的url链接https://api.map.baidu.com/place/v2/search请求方式:get、post、put......
  • MinimalApis自动注册
    前言在Asp.NetCore6推出了最小Api(MinimalApis)来简化WebApi的开发,在前后端分离的趋势下越来越多的后端服务只提供Api接口,但是用Controller的开发模式会引入MVC的架构,MinimalApis的出现就是来减少框架的依赖,让Api的开发更加简洁,并且可以优化性能。本文的重点是解决Minim......
  • 深入了解设备交互 API 如何改变我们的生活
    简介设备交互是自动化测试工具与移动设备进行沟通和掌握的过程,它不仅限于基本的应用元素点击和输入等操作。在移动端应用程序测试中,设备交互的范围扩展到模拟通信方面和模拟设备本身的功能和行为,会涉及到设备的通信行为,例如模拟电话呼叫和短信发送,以及控制设备的一些系统级别的......
  • .NET Framework 4.8 Web API+Entity Framework(实现增删改查)
    1、首先,创建一个新的.NETFramework4.8WebAPI项目。2、定义Student类:publicclassStudent{publicintId{get;set;}publicstringName{get;set;}publicintAge{get;set;}}3、创建DbContext类:usingSystem.Data.Entity;publicclassS......
  • PyPI的简单仓库API
    翻译:https://packaging.python.org/en/latest/specifications/simple-repository-api/SimplerepositoryAPIHostURL:https://pypi.org/simple/BaseHTMLAPI直接请求根URL/返回一个HTML5的页面,包含了每个项目的超链接标签,其中标签文本是项目名称,herf属性是项目的链接。<!D......
  • C# WebApi定时任务FluentScheduler的使用
    第一步:通过NuGget包下载安装FluentScheduler包;第二步:在全局配置文件Global.asax中注册定时任务,方法如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Http;usingSystem.Web.Routing;usingFluentScheduler;......