Android 百度OCR文字识别功能的简单集成

Github 链接:https://github.com/heynchy/BaiduOCR

简单的了解一下百度OCR文字识别SDK的集成,环境的配置和相关接口的使用

百度OCR通用文字识别功能介绍:

 1. 通用文字识别功能(调用百度自带的UI方案)-----通用识别
 2. 高精度通用文字识别功能(调用百度自带的UI方案)-----高精度识别
 3. 对本地的图片进行识别

Usage

1. Add dependency

 dependencies {
     implementation 'com.github.heynchy:BaiduOCR:v0.1'
 }

2. 配置信息

在百度OCR的官网注册时,如果生成了权限文件--aip.license; 可将该文件拷贝至工程的assets文件夹中
(此文件与文字识别的token验证方式(第一种验证方式)有关);
如果不拷贝该文件则,在第三步需要使用第二种验证方式

3. 使用时要先验证功能是否可用,一般放在onCreate()中执行----两种验证方式任选一种

        /**
         * 获取OCR的token(验证服务是否可用)---两种获取方式任选一种
         * 
         * 第一种 BaiduOCRUtil.initAccessToken
         *        ------安全性好,该方式的初始化与上一步的aip.license文件有关
         *        
         * 第二种 BaiduOCRUtil.initAccessTokenWithAkSk(this, ak, sk)
         *      ------ 安全性差, 该方式需要注册时获得的两个字符串(ak, sk)
         */
        BaiduOCRUtil.initAccessToken(this);
        BaiduOCRUtil.initAccessTokenWithAkSk(this,
                "simWLUnb7R8keKGF7cnsllMq",
                "lI5GlFDYGva3YUicsfMRH0q07FC79wzH");

4. 使用完毕后,释放OCR的相关资源-----一般放在onDestory()中执行

      // 释放内存资源
       BaiduOCRUtil.release();

5. 功能介绍

5.1 通用识别类型 (文字识别的相关类型)---识别图片采用的方式---识别方法中的type参数

REC_GENERAL_BASIC = 100;     // 通用文字识别-----无位置信息 50000次/天
REC_GENERAL_ACCURATE = 101;  // 通用文字识别(高精度版)--无位置信息 500次/天
REC_GENERAL_LOCATION = 102; // 通用文字识别-----带位置信息 500次/天
REC_ACCURATE_LOCATION = 103;// 通用文字识别----高精度带位置信息 50次/天

5.2 通过百度提供的相关UI进行文字识别功能的实现(拍照界面由百度的UI提供的)

    /**
     * 打开百度提供的UI界面----BaiduOCRUtil
     *
     * @param context  上下文对象
     * @param type  通用识别类型(也作为onActivityResult 的 requestCode)----(5.1中的类型)
     */
    BaiduOCRUtil.openOCRWithOcrUi(Context context, int type)
    /**
     *  在onActivityResult的方法中获取图片的返回并进行文字识别处理
     *  
     * @param requestCode   此处的返回参数应该等于通用文字识别的类型
     * @param resultCode
     * @param data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // 识别成功回调,通用文字识别(含位置信息)---REC_GENERAL_BASIC 为打开UI界面时的type
        if (requestCode == REC_GENERAL_BASIC && resultCode == Activity.RESULT_OK) {
            BaiduOCRUtil.recognizeOCR(REC_GENERAL_BASIC,
                    OCRFileUtil.getSaveFile(getApplicationContext()).getAbsolutePath(),
                    new ResultListener() {
                        @Override
                        public void onResult(ResultEvent result) {
                            /**
                             *  文字解析结果 result.getResultWorld()
                             *  文字位置信息  result.getLocationJson()
                             */
                            mResultTv.setText(result.getResultWorld());
                        }

                        @Override
                        public void onError(String error) {
                            mResultTv.setText(error);
                        }
            });
        }
    }

5.3 本地图片识别(直接识别某一张图片)

   /**
     * 进行图片的识别和信息的返回------方法1---传filePath
     *
     * @param type      通用识别类型(5.1中的类型)
     * @param filePath  图片的路径
     * @param listener  监听事件
     */
 BaiduOCRUtil.recognizeOCR(REC_GENERAL_BASIC, filePath, new ResultListener() {
     @Override
     public void onResult(ResultEvent result) {
         /**
          *  文字解析结果 result.getResultWorld()
          *  文字位置信息  result.getLocationJson()-----仅针对有位置信息返回的方法,没有位置信息返回的为null
          */
     }

     @Override
     public void onError(String error) {
     }
 });
 
 /**
  * 进行图片的识别和信息的返回------方法2--- 传File
  *
  * @param type      通用识别类型
  * @param file      图片的文件
  * @param listener  监听事件
  */
  BaiduOCRUtil.recognizeOCR(REC_GENERAL_BASIC, filePath, new ResultListener() {
      @Override
      public void onResult(ResultEvent result) {
          /**
           *  文字解析结果 result.getResultWorld()
           *  文字位置信息  result.getLocationJson()----仅针对有位置信息返回的方法,没有位置信息返回的为null
           */
      }

      @Override
      public void onError(String error) {
         mResultTv.setText(error);
      }
  });
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Heynchy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值