您的位置:首页 > 移动开发

安卓OCR身份证识别技术

2017-10-23 09:42 246 查看
给大家带来一个安卓OCR身份识别技术,我这里用的是百度提供的技术。需要去百度的开发平台注册账号,以及APP。

这是APP获取Token的方法。

private void initAccessTokenWithAkSk() {

OCR.getInstance().initAccessTokenWithAkSk(new OnResultListener() {

@Override

public void onResult(AccessToken result) {

String token = result.getAccessToken();

}

@Override
public void onError(OCRError error) {
error.printStackTrace();
alertText("AK,SK方式获取token失败", error.getMessage());
}
}, getApplicationContext(), "你的AK", "你的SK");
}

//然后就是吊起相机,在返回结果的方法里面,去获取图片,然后调用recIDCard方法。这个方法是百度的回调,进行身份识别。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CAMERA && resultCode == Activity.RESULT_OK) {
if (data != null) {
String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE);
if (!TextUtils.isEmpty(contentType)) {
if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)) {
String filePath = getSaveFile(getApplicationContext(), "zhengmian.jpg").getAbsolutePath();
recIDCard(IDCardParams.ID_CARD_SIDE_FRONT, filePath);
} else if (CameraActivity.CONTENT_TYPE_ID_CARD_BACK.equals(contentType)) {
String filePath = getSaveFile(getApplicationContext(), "fanmian.jpg").getAbsolutePath();
recIDCard(IDCardParams.ID_CARD_SIDE_BACK, filePath);
}
}
}
}
}


这是图片识别方法。

private void recIDCard(final String idCardSide, final String filePath) {

final IDCardParams param = new IDCardParams();

Bitmap bitmapOne = BitmapFactory.decodeFile(filePath, getBitmapOption(2));

File file = saveBitmapFile(bitmapOne, filePath);

param.setImageFile(file);

param.setIdCardSide(idCardSide);

param.setDetectDirection(true);

OCR.getInstance().recognizeIDCard(param, new OnResultListener() {

@Override

public void onResult(IDCardResult result) {

if (result != null) {

Bitmap bitmap = BitmapFactory.decodeFile(filePath);

if (idCardSide.equals(IDCardParams.ID_CARD_SIDE_BACK)) {

mImageViewFanMian.setImageBitmap(bitmap);

}

if (idCardSide.equals(IDCardParams.ID_CARD_SIDE_FRONT)) {

mImageViewZhengMianZhao.setImageBitmap(bitmap);

}

String[] split = result.toString().split(“,”);

if (split.length == 8) {

}

}

}

@Override
public void onError(OCRError error) {
alertText("采集信息有误", error.getMessage());
}
});
}


在使用百度的OCR身份识别技术时,需要去百度开发者平台注册APP,需要OCR的jar包,以及相关文件。使用时请下载官方Demo 然后把相关文件转移进项目。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android app ocr识别