安卓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();
}
这是图片识别方法。
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) {
}
}
}
在使用百度的OCR身份识别技术时,需要去百度开发者平台注册APP,需要OCR的jar包,以及相关文件。使用时请下载官方Demo 然后把相关文件转移进项目。
这是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 然后把相关文件转移进项目。
相关文章推荐
- 技术指南:服务器身份证识别银行卡识别
- APIX_身份证图像识别技术(附代码)
- 身份证识别OCR 应用技术及应用行业
- C#身份证识别相关技术
- 分享一种身份证OCR识别技术
- C#身份证识别相关技术
- 服务器端身份证ocr识别技术
- C#身份证识别相关技术功能详解
- 身份证识别识别OCR技术解决方案
- 身份证自动扫描拍照识别技术SDK
- 手机拍照身份证识别技术,基于Android、iOS平台
- 谈谈计算机图像识别技术之身份证号码识别
- C#身份证识别相关技术
- 身份证扫描识别OCR技术的应用场景
- 身份证扫一扫识别的ocr技术背景
- Android端OCR技术在身份证识别中的应用
- 移动端身份证扫描识别技术的应用,为实名制的普及带来便捷性
- C#身份证识别查询相关技术
- c#身份证识别相关技术
- 手机扫描身份证ocr识别技术