药品清单识别
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/medicine_inventory
请求方式:HTTP Post
返回格式:json
Header
参数 | 值 |
---|---|
Content-Type | 使用二进制方式时,为multipart/form-data;使用url方式时,为application/x-www-form-urlencoded |
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | string | 请在控制台->我的应用中获取 |
app_secret | 是 | string | 请在控制台->我的应用中获取 |
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图像为准。 |
调用示例
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 {
/**
* base64
*/
//识别url
String url = " http://api.exocr.com/ocr/v1/medicine_list";
//设置请求参数
Map<String, String> params = new HashMap<String, String>();
params.put("app_key", "#####");
params.put("app_secret", "#####");
//设置识别图像base64编码
params.put("image_base64", "base64ImageStr");
//发送请求,得到识别结果
String result = HttpClientUtils.doPost(url, params);
System.out.println(result);
/**
* url
*/
//设置请求参数、识别图像url
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/medicine.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);
//关闭io流
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(result);
}
}
返回示例
{
"result": [{
"count": {
"quad": [711.22247264162, 255.38127262886778, 736.2224631785184, 255.3595205026733, 736.2363845392829, 271.3595144462882, 711.2363940023845, 271.3812665724827],
"chinese_key": "数量",
"score": 1.0,
"words": "100"
},
"name": {
"quad": [101.21835311606188, 250.91202640063352, 334.2200050900499, 252.7092958274528, 333.235666999434, 270.71015909906737, 101.2340146469219, 268.91201958720035],
"chinese_key": "名称",
"score": 1.0,
"words": "308激光治308准分子激光费"
},
"specifications": {
"quad": [0, 0, 100, 0, 100, 100, 0, 100],
"chinese_key": "规格",
"score": 1.0,
"words": ""
},
"unit_price": {
"quad": [809.2241757163571, 257.29600353713727, 863.2241552760574, 257.2490189445572, 863.2363364667264, 271.24901364522026, 809.236356907026, 271.29599823780035],
"chinese_key": "单价",
"score": 1.0,
"words": "40.000"
},
"amount": {
"quad": [922.2241329431375, 257.1976839267382, 983.2241098531695, 257.14460873882365, 983.2362910438384, 271.14460343948673, 922.2363141338064, 271.1976786274013],
"chinese_key": "金额",
"score": 1.0,
"words": "4000.00"
},
"unit": {
"quad": [0, 0, 100, 0, 100, 100, 0, 100],
"chinese_key": "单位",
"score": 1.0,
"words": ""
}
}
],
"error_code": 0,
"description": "识别成功",
"request_id": "CA7D27181002480F86CDFDFBA8BCEA5D",
"recognize_time": 2433,
"available_count": 86009,
"version": null
}
返回说明
通用参数
参数 | 类型 | 说明 |
---|---|---|
result | array | 返回结果数组,包括所有识别信息 |
error_code | int | 错误码,返回0为正确,其他为错误 |
description | string | 识别结果描述 |
request_id | string | 请求唯一标识符 |
recognize_time | int | 识别所用时间,单位为毫秒 |
available_count | int | 识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数 |
result特有参数
参数 | 类型 | 说明 |
---|---|---|
count | array | 数量 |
name | array | 名称 |
unit_price | array | 单价 |
amount | array | 金额 |
spec | array | 规格 |
unit | array | 单位 |
chinese_key | String | 该字段中文含义 |
words | String | 识别结果 |
score | Float | 照片可信度 |
quad | String | 四个顶点坐标 |