效果图:

df599996b09dd3146465df1379e6a43f.gif

如下为文章正文:

百度OCR接口使用总结:

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

一、注册百度账号

二、登录百度ai控制台

31dd5a8608de5cf6b0ba273319823e9c.png

三、创建文字识别应用

1cbeafbb8df24199b03c77bcf7a609bc.png

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

cf8a7e5c3bf72d6fa5ef39e741d5b238.png

填写正确的包名

21f87d3c51cdbbc4ef17c8d098d253f4.png

490a009bf17b51f8adf29f9f8904ea52.png

四、下载相关文件

35f5cd96895c8957ccc2c942ebfb6ed3.png

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

0634673b566e99ffbbc666c4eaf9002a.png

五、新建工程

5.1、导入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.2、导入License文件

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

5.3、添加相应的权限

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

1d1ff452384ebdaf681f5619cd81f1ff.png

216f49371257b186c0ccd6e2cd3a5829.png

0501ecbeba37d8e6bdeafac3a848bf5d.png

c4aff30931919cebc1c138f28f2f54f1.png

7ee443e29aff05aaa51355ac3d0d0866.png

获取token代码:

private void getToken() {

OCR.getInstance(mContext).initAccessToken(new OnResultListener() {

@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() {

@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();

}

});

}

六、Demo下载链接

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

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐