温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java通过百度API实现图片车牌号识别的方法

发布时间:2021-06-24 13:49:09 来源:亿速云 阅读:600 作者:chen 栏目:开发技术

本篇内容主要讲解“Java通过百度API实现图片车牌号识别的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java通过百度API实现图片车牌号识别的方法”吧!

本代码功能是通过调用百度API实现的,所有你需要去百度API官网申请下你的API Key 以及Secret Key才能使用它的功能哦!

拟采用百度AI实现该功能(http://ai.baidu.com/docs#/OCR-API/5116ac95)

Java通过百度API实现图片车牌号识别的方法

根据百度的文档描述,初步明确需要的几个参数为:
1、应用的API Key
2、应用的Secret Key
3、access_token
4、图片数据

首先导入maven依赖

<dependency>
            <groupId>com.baidu.aip</groupId>
            <artifactId>java-sdk</artifactId>
            <version>4.11.3</version>
        </dependency>

设置你从百度API官网拿到的秘钥

//设置APPID/AK/SK
        private static final String APP_ID = "填写你的APP_ID";
        private static final String API_KEY = "填写你的API_KEY ";
        private static final String SECRET_KEY = "填写你的SECRET_KEY ";

下面是具体实现代码

/**
     *
     * @param img 图片的字节流
     * @return number 车牌号
     */
       public static String plateLicense(byte[] img)  {
            // 初始化一个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", ExportWordUtil.class.getResource("/").getPath() +"/log4j.properties");
            // 传入可选参数调用接口
            HashMap<String, String> options = new HashMap<String, String>();
            options.put("multi_detect", "false");
            // 调用接口
            JSONObject res = client.plateLicense(img, options);
            try {
                System.out.println(res.toString(2));
                if(res.get("words_result") != null) {
                    String  number = res.getJSONObject("words_result").getString("number");
                    //System.out.println(number);
                    return number;
                }else{
                 //失败打印错误信息
                    System.out.println(res.getString("error_msg"));
                }
            } catch (JSONException e) {
             //异常信息
                System.out.println(e.getMessage());
            }
            return null;
        }

 注意事项:
1、access_token有有效期,需要定期更换。
2、图片大小限制(分辨率、字节数)。
后台发起请求获取车牌号,一张图片从前台传到后台,再调用百度API,相当于传递两次,图片太大的话会造成访问过慢,用户体验不好。但是图片过小、分辨率压缩的过低,又会降低识别成功率。所以这里对处理图片的参数设置需要自己去把握,更好的平衡利弊。

到此,相信大家对“Java通过百度API实现图片车牌号识别的方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI