图文识别《一》

背景:开发定位测试环境或生产环境问题时需要登录云桌面,经常需要从云桌面中复制一些东西到本地,但是云桌面中的东西复制不出来,例如: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) { 
  Listlist = (List) map.get("words_result");
  for (Map m : list) { 
  sBuilder.append(m.get("words")); 
  sBuilder.append("\n");
  } 
  } 
  System.out.println(sBuilder.toString());
  } 
}
APPID、AK、SK 希望自己注册,用我的也可以,指不定哪天我删了,那就没法用咯
 
posted @ 2018-08-13 19:37  宅小涛  阅读(145)  评论(0编辑  收藏  举报