OCR识别(Android)接入

开始嵌入SDK

安装和部署

欢迎使用OCR Android SDK,您可以按照以下步骤开始SDK接入。

OCR主要是提供身份证,银行卡,文字等识别功能。


OCR功能的一般使用流程:

1. 添加权限

2. 注册APP的用户信息

3. 在需要识别时

a) 检查相机设备权限是否允许开启,并提示用户打开;

b) 调用请求OCR接口;

c) 通过回调函数,处理请求的结果;



  • Step 1 获取OCR所需要的AppId和AppKey


登陆腾讯移动分析移动统计前台:http://mta.qq.com,按照步骤提示注册应用,可获得AppId和AppKey。


  • Step 2 向工程中导入SDK


下载SDK压缩包,解压至本地目录,将其中lib目录下的mta-android-sdk-x.x.x.jar、mid -sdk-x.x.x.jar、protobuf-java-2.6.1.jar,ocr.jar和所有平台so复制到您的应用工程libs目录(若不存在请新建一个)中。

以Eclipse为例:右键点击工程根目录→选择Properties → Java Build Path →Libraries →点击Add JARs…选中当前工程libs目彔下的相关jar文件,点击“OK”按钮即导入成功。


  • Step 3 配置AndroidManifest.xml文件


主要是添加OCR SDK所需的权限。


   <!-- 用于访问wifi网络信息,wifi信息会用于进行网络识别 -->
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.READ_PHONE_STATE" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- OCR权限 -->
<uses-feature android:name="android.hardware.camera" />
   <uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />


   

升级SDK

新版本SDK兼容老版本接口,升级时只需要替换旧的jar包即可:先在工程所在libs目录下删除旧的jar包,复制新jar包到libs路径,同时,在Java Build Path里面删除旧的jar包,并添加新jar包引用。


代码混淆

请保留以下选项:

-keep class com.tencent.stat.**  {* ;}

-keep class com.tencent.mid.**  {* ;}

-keep class com.tencent.android.ocr.**  {* ;}




OCR API

本章节在于引用使用如何使用API接口,关于详细的API定义见下载包的doc/api目录的JAVA doc。

通用API

本小节介绍OCR API的通用部分。具体以下通用的API。

初始化

ImgSearcher.getInstance(this).setLinstener(this);
OCRConfig.setAccessIDToken(this,APPID,TOKEN);
ImgPoint.getInstance().setPoint(top[], right[], left[], bottom[]);

注:此处的 top,right,left,bottom是取景框落在实际图片的四个小矩形

如:top【0】:TOP矩形最左上角顶点x轴坐标

Top【1】:TOP矩形最左上角顶点y轴坐标

Top【2】:TOP矩形宽

Top【3】:TOP矩形高

 -------------------------------------

 |                top                |

 -------------------------------------

 |      |                    |       |

 | left |                   | right |

 |      |                    |       |

 -------------------------------------

 |              bottom               |

 -------------------------------------



开始识别

ImgSearcher.getInstance(this).start(data,width,height, currentType);


注:data为相机预览返回的帧byte[],width和height分别为相机预览的宽和高,currentType是银行卡为0,身份证为1,文字为2.


实现 ImgListener,并重写其函数

直接在 Activity 类中实现 ImgListener,重写 ImgListener 各函数如下所示:


@Override public void onGetError(int errorCode) {

}
注:errorCode =0;表示成功

@Override
public void onGetResult(ImgResult result) {
if(result!=null)
String content = Result.getContent();
}
@Override public void onGetState(int state) {
}
注:state=0表示初始化
state =100表示正在识别中
state =200表示识别完成(成功)
state=300表示识别完成(失败)



目录

回到顶部