批量识别图版中的文字信息之百度AI文字识别
百度AI文字识别
package cc.ocr.baidu;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import com.baidu.aip.ocr.AipOcr;
public class Sample {
//设置APPID/AK/SK
public static final String APP_ID = "";
public static final String API_KEY = "";
public static final String SECRET_KEY = "";
public static void main(String[] args) {
// 初始化一个AipOcr
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 可选:设置代理服务器地址, http和socket二选一,或者均不设置
//client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
//client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
// 可选:设置log4j日志输出格式,若不设置,则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
// 调用接口
String path = "test.png";
JSONObject res = client.basicGeneral(path, new HashMap<String, String>());
System.out.println(res.toString(2));
MyFormat(res);
}
public static void MyFormat(JSONObject res) {
JSONArray jsonArray = res.getJSONArray("words_result");
jsonArray.forEach(item->{
JSONObject jobj = (JSONObject) item;
System.out.println(jobj.get("words"));
});
// for(Object obj:words_result) {
// Map<String,String> map = (Map<String, String>) obj;
// System.out.println(map.get("words"));
// }
}
/**
*获取某个目录下所有直接下级文件,不包括目录下的子目录的下的文件,所以不用递归获取
*/
public static List<String> getFiles(String path) {
List<String> files = new ArrayList<String>();
File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
files.add(tempList[i].toString());
//文件名,不包含路径
//String fileName = tempList[i].getName();
}
if (tempList[i].isDirectory()) {
//这里就不递归了,
}
}
return files;
}
}
需要导入百度AI Java SDK。