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

百度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.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、添加相应的权限

<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("\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下载链接

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

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

posted @ 2019-05-16 16:42 niceyoo 阅读(...) 评论(...) 编辑 收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot下整合各种配置文件

本博是在springboot下整合其他中间件&#xff0c;比如&#xff0c;mq&#xff0c;redis&#xff0c;durid&#xff0c;日志。。。等等 以后遇到再更。springboot真是太便捷了&#xff0c;让我们赶紧涌入到springboot的怀抱吧。 application.yml server:port: 8080 spring:#pro…

Android vector矢量图应用实例

在drawable文件夹下创建vector.xml文件 <?xml version"1.0" encoding"utf-8"?> <vector xmlns:android"http://schemas.android.com/apk/res/android"android:height"64dp"android:width"64dp"android:viewpo…

javaweb引用serverlet库

报错提示&#xff1a;The type javax.servlet.http.HttpServletRequest cannot be resolved.解决方法如下&#xff1a;1.工程右键-properties->java build path 2.在java build path的libraries tab页中选择Add external Jars...按钮 3. 选择eclipse的安装目录&#xff0c;我…

Lint found fatal errors while assembling a release target

在打包APK时报错&#xff1a;Lint found fatal errors while assembling a release target Android在debug模式下应用没有问题&#xff0c;但是在打包release版本时出现一下问题&#xff1a; 解决方法&#xff1a; 1、打开app下build文件夹下reports文件夹下的lint-results-rel…

POJ :3614-Sunscreen

传送门&#xff1a;http://poj.org/problem?id3614 Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10136 Accepted: 3544 Description To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide with sun…

自定义注解-aop实现日志记录

关于注解&#xff0c;平时接触的可不少&#xff0c;像是 Controller、Service、Autowried 等等&#xff0c;不知道你是否有过这种疑惑&#xff0c;使用 Service 注解的类成为我们的业务类&#xff0c;使用 Controller 注解的类就成了请求的控制器&#xff0c;使用 Autowried 注…

java开发资源下载链接

MQ:http://activemq.apache.org/download-archives.html MQdemo下载链接&#xff1a;https://download.csdn.net/download/meixi_android/10896200 myeclipse2013:https://www.newasp.net/soft/66664.html myeclipse2015:https://pan.baidu.com/s/1Od34IV92ECk5XulnuVTFrA#list…

CentOS 7配置Let’s Encrypt支持免费泛域名证书

Let’s Encrypt从2018年开始支持泛域名证书&#xff0c;有效期3个月&#xff0c;目前仅支持acme方式申请&#xff0c;暂不支持certbot。 1、安装acme.sh curl https://get.acme.sh | sh 2、请求证书&#xff08;泛域名以*.s-b.me为例&#xff09; cd /.acme.sh ./acme.sh --iss…

JPA EnableJpaAuditing 审计功能

关于自动填充或更新实体中的 CreateDate、CreatedBy 等在之前有一篇 jeecg 默认为空的字段值是如何被填充的? 有提到通过拦截器的方式实现&#xff0c;但是今天带大家了解一下如果使用 JPA 的审计功能是如何简单实现该操作的。 JPA Audit 说明 在 Spring JPA 中&#xff0c;支…

前端学习(2789):改进导航栏并跳转

第一步:动态数据 第二步 页面渲染

Android 图片识别、图像识别

实现效果 基于百度智能云实现的图片识别 实现步骤 1、到百度智能云注册图像识别应用 https://console.bce.baidu.com/ai/?_1574674029784&fromai1#/ai/imagerecognition/overview/index 2、配置ID与key 3、实现demo&#xff1a;https://download.csdn.net/download/meix…

Android 高德地图在清除所有Marker,清除某一个MarKer

清除所有&#xff1a;aMap.clear(true); 清除单个&#xff1a; marker.remove();

C++语言第一课的学习

1 // HelloApp.cpp: 定义控制台应用程序的入口点。2 //3 4 #include "stdafx.h"5 #include <iostream>6 #include "head.h"7 using namespace std;8 9 10 int main() 11 { 12 int num0; 13 cout << "输入1个数字&#xff1a;&qu…

WebSocket 实现前后端通信的笔记

之前在做站内信时&#xff0c;用到了 WebSocket &#xff0c;整理了一些笔记分享如下。 本文基于 SpringBoot 2.1.5&#xff0c;本文不涉及环境搭建。 引入依赖 在 Spring 中要使用 WebSocket 功能&#xff0c;需要在pom中引入依赖&#xff1a; <dependency><groupI…

redis笔记——redis事务及锁应用

1.redis支持简单的事务 2.redis 和 mysql事务的对比 MysqlRedis开启start transactionmulti&#xff08;并不执行&#xff0c;放在一个队列里&#xff09;语句普通sql普通命令失败rollback回滚discard取消成功commitexecrollback 和 discard 的区别&#xff1a; 如果已经成功执…

Android 地图搜索商家,检索关键字(高德地图,百度地图),地址搜索

1、高德地图 实现效果 打印数据 实现步骤&#xff1a; 1、首先去高德开放平台注册应用 高德开放平台&#xff1a;https://lbs.amap.com/ 2、点击 我的应用 ——>设置 注&#xff1a;SHA1获取方法&#xff1a;https://blog.…

全局异常捕获处理-@ControllerAdvice+@HandleException

涂涂影院管理系统这个demo中有个异常管理的标签&#xff0c;用于捕获 涂涂影院APP用户异常信息 &#xff0c;有小伙伴好奇&#xff0c;排除APP&#xff0c;后台端的是如何处理全局异常的&#xff0c;故项目中的实际应用已记之。 关于目前的异常处理 在使用全局异常处理之前&am…

前端学习(2791):实现上拉加载更多

判断页面是否有十条数据 没有 则消失