目录
2)获取x-ti-app-id及x-ti-secret-code
1.调用费用
新用户拥有1千次调用次数
调用费用:超过部分02元/次;5千次套餐包800元
2.调用流程
1)注册textin账户,进入右上角工作台
工作台链接TextIn - 总览
2)获取x-ti-app-id及x-ti-secret-code
3)开通API服务
API链接:TextIn - API中心 - 通用文字识别
4)调用代码
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws Exception {
// 通用文字识别
String url = "https://api.textin.com/ai/service/v2/recognize";
// 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
// 示例代码中 x-ti-app-id 非真实数据
String appId = "2717f5a9bacc65a223605efdb9a99650";
// 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
// 示例代码中 x-ti-secret-code 非真实数据
String secretCode = "310bf0337df322778a2a84bffcf67026";
BufferedReader in = null;
DataOutputStream out = null;
String result = "";
try {
byte[] imgData = readfile("example.jpg"); // image
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "application/octet-stream");
conn.setRequestProperty("x-ti-app-id", appId);
conn.setRequestProperty("x-ti-secret-code", secretCode);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST"); // 设置请求方式
out = new DataOutputStream(conn.getOutputStream());
out.write(imgData);
out.flush();
out.close();
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
System.out.println(result);
}
public static byte[] readfile(String path)
{
String imgFile = path;
InputStream in = null;
byte[] data = null;
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e) {
e.printStackTrace();
}
return data;
}
}
3. 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
]
]
}
]
}
}
4.关于报错误码说明
5.总结
首先,需要注册并登录到提供API服务的合合textin平台。在平台上获取开发者信息相应的APIx-ti-app-id和x-ti-secret-code。这些凭证将用于后续的API调用。
接着,根据API文档,了解API的调用方式和请求参数。通用文字识别API要求上传的图片,目前支持jpg, png, bmp, pdf, tiff, 单帧gif等大部分格式。请求体的数据格式为文件的二进制流,非 FormData 或其他格式。文件大小不超过 10M,图像宽高须介于 20 和 10000(像素)之间。
然后,编写代码来调用API。这可以通过使用编程语言中的HTTP库来实现,发送包含必要参数的POST请求到API服务地址。在请求中,需要包含API开发者信息相应的APIx-ti-app-id和x-ti-secret-code,以便平台进行身份验证和授权。
API服务在接收到请求后,会进行文字识别处理,并返回识别结果。这个结果以JSON格式返回,包含识别出的文字内容以及相关的元数据。
最后,根据返回的识别结果,可以在应用中进行进一步的处理,如展示识别结果、保存到数据库等。
在整个使用过程中,需要注意处理可能出现的错误和异常情况,如网络错误、API调用限制等。同时,也要关注API的更新和变化,以便及时调整代码以适应新的接口和功能。
总的来说,使用通用文字识别功能API需要一定的编程和网络知识,但通过仔细阅读API文档和参考示例代码,可以较快地掌握使用方法,并将其集成到实际的应用中。而在实际应用中,无论是处理扫描文档、识别图片中的文字还是提取广告牌信息,该技术都能迅速将图像中的文字转化为可编辑的文本,大大提高了工作效率。同时,API接口友好,调用简单,能够轻松集成到项目中,成为了我们项目的核心功能之一。