通用表格多页识别
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/table_multi
请求方式:HTTP Post
返回格式:json
参数 |
值 |
Content-Type |
使用二进制方式时,为multipart/form-data;使用url方式时,为application/x-www-form-urlencoded |
请求参数
参数 |
必选 |
类型 |
说明 |
image_base64 |
否 |
string |
图像base64串。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_url |
否 |
string |
图像url地址。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_binary |
否 |
data |
图像二进制。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
table_image_wanted |
否 |
String |
是否需要切图 0 不需要,1 需要,默认不需要 |
disable_wireless |
否 |
string |
是否禁用无线表识别,0 不需要,1 需要,默认不需要 |
disable_lines |
否 |
string |
是否禁用有线表识别,0 不需要,1 需要,默认不需要 |
app_key |
是 |
string |
请在控制台->我的应用中获取 |
app_secret |
是 |
string |
请在控制台->我的应用中获取 |
调用示例
java(相关依赖库下载)
package com.exocr.httpclient;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import com.exocr.common.utils.HttpClientUtils;
public class Test {
public static void main(String[] args) throws FileNotFoundException {
String url = " http://api.exocr.com/ocr/v1/table_multi";
Map<String, String> params = new HashMap<String, String>();
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("image_base64", "base64ImageStr");
String result = HttpClientUtils.doPost(url, params);
System.out.println(result);
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("image_url", "imageUrl");
result = HttpClientUtils.doPost(url, params);
System.out.println(result);
params.put("app_key", "#####");
params.put("app_secret", "#####");
File file = new File("/Users/mac/logs/table.png");
InputStream in = new FileInputStream(file);
Map<String, InputStream> streamMap = new HashMap<String, InputStream>();
streamMap.put("image_binary", in);
result = HttpClientUtils.doPostStream(url, params, streamMap);
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(result);
}
}
返回示例
{
"result": [
{
"width": 1654,
"height": 3507,
"tables": [
{
"cells": [
{
"coordinates": [
[
231,
118
],
[
248,
118
],
[
248,
149
],
[
231,
149
]
],
"score": 0.99996245,
"row_index": 0,
"cols_span": 1,
"text_items": [
{
"quad": "347,455,371,455,371,479,347,479",
"score": 0.31392279,
"type": "print",
"words": "资",
"position": {
"width": 24,
"top": 455,
"height": 24,
"left": 347
},
"vertical": false,
}
],
"words": "资",
"rows_span": 1,
"col_index": 0,
"bbox": [
231,
118,
248,
149
]
},
{
"coordinates": [
[
1912,
2292
],
[
2124,
2292
],
[
2124,
2321
],
[
1912,
2321
]
],
"score": 0.96390188,
"row_index": 41,
"cols_span": 1,
"words": "612,201,478.99",
"rows_span": 1,
"col_index": 7,
"bbox": [
1912,
2292,
2124,
2321
]
}
],
"image": ""
}
],
"rotation": 0.0,
"table_lines": [
{
"vlines": [
{
"width": "1",
"points": "80,81;96,2343",
"id": "1"
},
{
"width": "1",
"points": "1864,70;1879,2330",
"id": "8"
}
],
"hlines": [
{
"width": "1",
"points": "81,80;2120,67",
"id": "1"
},
{
"width": "1",
"points": "96,2292;2136,2277",
"id": "42"
}
]
}
],
"text":[
{
"quad": "1001,229,1435,225,1436,289,1001,293",
"words": "资 产 负 债 表",
"score": 0.91576248,
"position": {
"left": 1001,
"top": 225,
"width": 435,
"height": 68
},
"type": "print"
}
],
"page_no": 0
}
],
"error_code": 0,
"description": "识别成功",
"request_id": "15A564A112CD40DF81D07D6E0704204C",
"recognize_time": 13732,
"available_count": 9999736,
"version": null,
"rotation": null
}
返回说明
通用参数
参数 |
类型 |
说明 |
error_code |
int |
错误码,返回0为正确,其他为错误 |
description |
string |
识别结果描述 |
request_id |
string |
请求唯一标识符 |
recognize_time |
int |
识别所用时间,单位为毫秒 |
available_count |
int |
识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数 |
result |
array |
返回结果数组,包括所有字段的识别信息 |
version |
string |
版本 |
通用表格多页识别特有参数
参数 |
类型 |
说明 |
width |
int |
原图宽度 |
height |
int |
原图高度 |
rotation |
int |
图片旋转角度 0,90,180,270 |
page_no |
int |
页码 |
text |
array |
识别文本结果 |
tables |
array |
表格识别结果 |
tables_lines |
array |
表格线识别结果 |
text特有参数
参数 |
类型 |
说明 |
quad |
String |
原图宽度 |
words |
String |
原图高度 |
score |
int |
图片旋转角度 0,90,180,270 |
position |
int |
页码 |
type |
String |
识别文本类型 print机打;handwriting手写 |
table特有参数
参数 |
类型 |
说明 |
cells |
array |
单元格 |
cells/words |
String |
识别结果文本 |
cells/col_index |
String |
列索引 |
cells/cols_span |
int |
列单元格数 |
cells/row_index |
String |
行索引 |
cells/rows_span |
int |
行单元格数 |
cells/bbox |
array |
最大单元格长度 left,top,right,bottom |
cells/coordinates |
array |
单元格坐标 |
cells/text_items |
array |
单元格文本列表 |
cells/text_items/quad |
String |
四个顶点坐标 依次为左上,右上,右下,左下四个点的坐标值 |
cells/text_items/words |
String |
识别结果文本 |
cells/text_items/score |
String |
可信度 取值范围为0~1 |
cells/text_items/position |
Object |
位置矩形框 以左上角为基准,距离左侧,上侧,右侧矩形框长度,下侧矩形框长度 |
cells/text_items/vertical |
boolean |
是否是竖文本 |
cells/text_items/type |
String |
类型 print机打;handwriting手写 |
image |
String |
图片切图 当table_image_wanted=1时返回 |
bbox |
String |
单元格坐标 |
table_lines特有参数
参数 |
类型 |
说明 |
hlines |
array |
横线 |
hlines/id |
String |
横线标志 |
hlines/points |
String |
横线位置信息 |
hlines/width |
String |
横线宽度 |
vlines |
array |
竖线 |
vlines/id |
String |
竖线标志 |
vlines/points |
String |
竖线位置信息 |
vlines/width |
String |
竖线宽度 |