当前位置: 首页 > news >正文

批量识别图版中的文字信息之百度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。

相关文章:

  • 操作系统 术语表
  • GoldenDict 调用百度翻译(多段文本)
  • Hexo常用命令
  • 最小路径和(minimum-path-sum)
  • Leetcode.4.寻找两个有序数组的中位数(problems/median-of-two-sorted-arrays)
  • python调试PDB工具命令
  • PAT乙级介绍
  • PAT乙级1011. A+B和C(C语言)
  • 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
  • sql优化的几种方法(面试必背)
  • mysql的性能优化(经典必看)
  • 路径总和 II
  • 二叉树的所有路径(binary-tree-paths)
  • Deepin中的fcitx输出的文字变繁体
  • 二叉树的最近公共祖先(lowest-common-ancestor-of-a-binary-tree)
  • python3.6+scrapy+mysql 爬虫实战
  • [译]如何构建服务器端web组件,为何要构建?
  • 78. Subsets
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • ComponentOne 2017 V2版本正式发布
  • CSS居中完全指南——构建CSS居中决策树
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • PermissionScope Swift4 兼容问题
  • Protobuf3语言指南
  • spring security oauth2 password授权模式
  • vue-cli在webpack的配置文件探究
  • 百度地图API标注+时间轴组件
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 软件开发学习的5大技巧,你知道吗?
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • NLPIR智能语义技术让大数据挖掘更简单
  • 交换综合实验一
  • ![CDATA[ ]] 是什么东东
  • #前后端分离# 头条发布系统
  • ${factoryList }后面有空格不影响
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (31)对象的克隆
  • (39)STM32——FLASH闪存
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Forward) Music Player: From UI Proposal to Code
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十六)Flask之蓝图
  • . NET自动找可写目录
  • .Net 应用中使用dot trace进行性能诊断
  • .NetCore部署微服务(二)
  • .NET简谈设计模式之(单件模式)
  • .NET开发不可不知、不可不用的辅助类(一)
  • /var/log/cvslog 太大
  • @Import注解详解
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [04] Android逐帧动画(一)