图文识别《一》
背景:开发定位测试环境或生产环境问题时需要登录云桌面,经常需要从云桌面中复制一些东西到本地,但是云桌面中的东西复制不出来,例如:24位的工单流水号,参数名称等等。。。这时就很痛苦,需要一个字一个字打出来,还需要对照验证准确性。手机QQ微信好像有一个东西可以提取图片中的信息,但是操作比较复杂。遂想着写个小工具,能提取截图中的信息。
构建:本想找个js库直接引进来,可是找了好久那些都不好用,尤其是javascript 编写的ocr 完全跑不起来,极度浪费时间。后面查阅大量资料,发现百度云有现成的接口,准确率高而且速度也很快。(PS:桌面程序没 搞成,感觉半成品也能用,就这样吧)
项目:构建maven项目或者使用spring-boot均可
pom.xml 中引入
com.baidu.aip
java-sdk
4.5.0
com.alibaba
fastjson
1.2.4
java:
public class Sample {
// APPID/AK/SK 这三个值需要注册百度云,在平台上操作获取 用于调用接口验证
public static final String APP_ID = "11640585";
public static final String API_KEY = "7hAbGLSEBzt1itBN1GYZO08n";
public static final String SECRET_KEY = "vf0EgcpkSpAiK7vAxF09DBN0xtgqOtr0";
public static void main(String[] args) {
// OCR对象
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 设置超时时间
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 图片位置 我写死了直接就在桌面,截图保存桌面方便点
String path = "C:/Users/ASUS/Desktop/111.png";
//调用接口识别文字
JSONObject res = client.basicGeneral(path, new HashMap());
StringBuilder sBuilder = new StringBuilder();
Map map = (Map) JSON.parse(res.toString());
if (null != map) {
List
for (Map m : list) {
sBuilder.append(m.get("words"));
sBuilder.append("\n");
}
}
System.out.println(sBuilder.toString());
}
}
APPID、AK、SK 希望自己注册,用我的也可以,指不定哪天我删了,那就没法用咯