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

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

效果图:html

以下为文章正文:java

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

1、注册百度帐号

没有百度帐号须要注册一个百度帐号……https://passport.baidu.com/v2/?regjson

2、登陆百度ai控制台

http://ai.baidu.com/api

3、建立文字识别应用

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

填写正确的包名微信

4、下载相关文件

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

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

5、新建工程

5.一、导入jar包及so文件

文件位置:

\aip-ocr-android-sdk-1.4.4\aip-ocr-android-sdk-1.4.4\libs\ocr-sdk.jar

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

5.二、导入License文件

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

5.三、添加相应的权限

<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.四、如需使用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("\n");
            }
            // 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();
        }
    });
}

6、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

相关文章
相关标签/搜索