• 百度OCR文字识别-Android安全校验


    本文转载自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769

    效果图:

    如下为文章正文:

    百度OCR接口使用总结:
    之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐使用方式,授权文件(安全模式);。

    一、注册百度账号

    没有百度账号需要注册一个百度账号……https://passport.baidu.com/v2/?reg

    二、登录百度ai控制台

    http://ai.baidu.com/

    三、创建文字识别应用

    填写相关信息(选择文字识别需要包名)

    填写正确的包名

    四、下载相关文件

    下载sdk https://ai.baidu.com/sdk#ocr

    点击查看应用详情,下载License文件-Android(文字识别)

    五、新建工程

    5.1、导入jar包及so文件

    文件位置:

    aip-ocr-android-sdk-1.4.4aip-ocr-android-sdk-1.4.4libsocr-sdk.jar

    将 libs 目录下 armeabi,arm64-v8a,armeabi-v7a,x86 文件夹按需添加到 android studio 工程 src/main/jniLibs 目录中

    5.2、导入License文件

    将License文件添加到assets文件夹里面

    5.3、添加相应的权限

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    5.4、如需使用UI模块,导入ocr-ui工程。(如不需要,可跳过该步骤)

    获取token代码:

    private void getToken() {

        OCR.getInstance(mContext).initAccessToken(new OnResultListener<AccessToken>() {
            @Override
            public void onResult(AccessToken result) {
                // 调用成功,返回AccessToken对象
                final String token = result.getAccessToken();

                Log.e("MainActivity""MainActivity onResult()" + token);

                mToken = token;
            }

            @Override
            public void onError(OCRError error) {
                // 调用失败,返回OCRError子类SDKError对象
                error.printStackTrace();
            }
        }, getApplicationContext());

    }

    识别图片文字

    public void getData(String filePath) {

        if (TextUtils.isEmpty(this.mToken)) {
            getToken();
        }

        // 通用文字识别参数设置
        GeneralBasicParams param = new GeneralBasicParams();
        param.setDetectDirection(true);
        param.setImageFile(new File(filePath));

        final StringBuffer sb = new StringBuffer();

        // 调用通用文字识别服务
        OCR.getInstance(this).recognizeGeneralBasic(param, new OnResultListener<GeneralResult>() {
            @Override
            public void onResult(GeneralResult result) {
                // 调用成功,返回GeneralResult对象
                for (WordSimple wordSimple : result.getWordList()) {
                    // wordSimple不包含位置信息
                    WordSimple word = wordSimple;
                    sb.append(word.getWords());
                    sb.append(" ");
                }
                // json格式返回字符串
                //listener.onResult(result.getJsonRes());

                Log.e("MainActivity""MainActivity onResult()    ::" + sb.toString());


                Message msg = Message.obtain();
                msg.what = 100;
                msg.obj = sb.toString();
                mHandler.sendMessage(msg);
            }

            @Override
            public void onError(OCRError error) {
                // 调用失败,返回OCRError对象
                int errorCode = error.getErrorCode();
                Log.e("MainActivity""MainActivity onError()    ::" + errorCode);

                error.printStackTrace();
            }
        });
    }

    六、Demo下载链接

    本文的案例源码下载地址:

    https://download.csdn.net/download/pyfysf/10916124

    百度官方相应api文档地址
    http://ai.baidu.com/docs#/OCR-API/top
    http://ai.baidu.com/docs#/OCR-Android-SDK/top

    如果文章有错的地方欢迎指正,大家互相留言交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:niceyoo

  • 相关阅读:
    【回顾整理】HTML+CSS个的两个实战项目
    【转】tkinter实现的文本编辑器
    迟到的tkinter---学校选课刷屏器
    调用有道翻译API
    【leetCode】3Sum Closest
    【LeedCode】3Sum
    【LeedCode】String to integer(atoi)
    【LeetCode】Reverse digits of an integer
    前端工程师必备PS技能
    【LeetCode】Add Two Numbers
  • 原文地址:https://www.cnblogs.com/niceyoo/p/10876503.html
Copyright © 2020-2023  润新知