首页 > 编程知识 正文

手机身份证识别,身份证信息识别软件

时间:2023-05-03 18:31:47 阅读:41022 作者:649

安卓身份证拍照识别图文识别(百度)QQ群:548629089

百度智能云文档

身份证识别DEMO 1. 为您自己的工程添加必要的权限

如果要将SDK集成到您的项目中,请确保已将以下权限添加到项目的AndroidManifest.xml文件中:

uses-permission Android 3360 name=' Android.permission.internet '/uses-permission Android 3360 name=' Android.permission Android 3360 name=' Android.permid uses-permisssion Android 3360 name age '/uses-permission Android 3360 name=' Android.permission.write _ external _ storage ' /名称用途网际网路APP应用程式已连线获得识别结果的CAMERA调用相机拍照(仅需要UI部分) WRITE_EXTERNAL_STORAGE图像裁剪临时存储READ_EXTERNAL_STORAGE图像裁剪临时存储3. 开发包添加

前往SDK下载页面下载安卓SDK压缩包。 (必需)将下载软件包libs目录中的ocr-sdk.jar文件复制到项目的libs目录中,并添加项目依赖关系。 (必需)根据需要,将libs目录下的armeabi、arm64-v8a、armeabi-v7a和x86文件夹添加到android studio工程src/main/jnilibs目录中(可选)如果需要使用UI模块,请在Android studio中将下载软件包中的ocr-ui文件夹作为模块导入。4. Proguard配置

如果要将SDK集成到自己的项目中,请将其添加到Proguard配置文件中,以防止在发布时出现软件包错误。

- keepclasscom.Baidu.ocr.SDK.* * { *; }-dontwarncom.Baidu.ocr.* * http://www.Sina.com /

Api Key和Secret Key有时会在百度智能云上注册

ocr.getinstance (上下文).initaccesstokenwithaksk ) newonresultlisteneraccesstoken ) {@overridepublicvoidonresult ) } @ overridepublicvoidonerror (ocrerror )//调用失败,ocr error子类的SDKError对象)、getApplicationContext ),'您的APP序列

intent intent=new intent (realnameauthenticationactivity.this,CameraActivity.class ); intent.put extra (camera activity.key _ output _ file _ path,datafileutil.getsavefile ) getapplication ).getabababe startactivityforresult(intent,REQUEST_CODE_CAMERA );5. 初始化

@ overrideprotectedvoidonactivityresult (intrequestcode,int resultCode,Intent data ) super.onactivityresult )请求代码=null (字符串内容类型=data.ge

tStringExtra(CameraActivity.KEY_CONTENT_TYPE); String filePath = DataFileUtil.getSaveFile(getApplicationContext()).getAbsolutePath(); if (!TextUtils.isEmpty(contentType)) { if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)) { recIDCard(IDCardParams.ID_CARD_SIDE_FRONT, filePath); } else if (CameraActivity.CONTENT_TYPE_ID_CARD_BACK.equals(contentType)) { recIDCard(IDCardParams.ID_CARD_SIDE_BACK, filePath); } } } } }

8. 解析身份证图片

/** * 解析身份证图片信息 * * @param idCardSide 身份证正反面 * @param filePath 图片路径 */ private void recIDCard(final String idCardSide, String filePath) { Log.i("charge ID card", idCardSide); IDCardParams param = new IDCardParams(); param.setImageFile(new File(filePath)); // 设置身份证正反面 param.setIdCardSide(idCardSide); // 设置方向检测 param.setDetectDirection(true); // 设置图像参数压缩质量0-100, 越大图像质量越好但是请求时间越长。 不设置则默认值为20 param.setImageQuality(40); OCR.getInstance(RealNameAuthenticationActivity.this).recognizeIDCard(param, new OnResultListener<IDCardResult>() { @Override public void onResult(IDCardResult idCardResult) { Log.i("charge ID card", String.valueOf(idCardResult)); if (idCardResult != null) { if (idCardSide.equals("back")) { fileCardnationalStr = filePath; File fileCardnational = new File(filePath); if (fileCardnational.exists()) { Bitmap bm = BitmapFactory.decodeFile(filePath); idcardnationalbutton.setBackground(null); idcardnationalbutton.setImageBitmap(bm); } String signDate = ""; String expiryDate = ""; String issueAuthority = ""; if (idCardResult.getSignDate() != null) { signDate = idCardResult.getSignDate().toString(); } if (idCardResult.getExpiryDate() != null) { expiryDate = idCardResult.getExpiryDate().toString(); } if (idCardResult.getIssueAuthority() != null) { issueAuthority = idCardResult.getIssueAuthority().toString(); }// mContent.setText("签发机关: " + issueAuthority + "nn" +// "有效期限: " + signDate + "-" + expiryDate + "nn"); } else { fileCardheadsStr = filePath; File fileCardhead = new File(filePath); if (fileCardhead.exists()) { Bitmap bm = BitmapFactory.decodeFile(filePath); idcardheadbutton.setBackground(null); idcardheadbutton.setImageBitmap(bm); } String name = ""; String sex = ""; String nation = ""; String num = ""; String address = ""; if (idCardResult.getName() != null) { name = idCardResult.getName().toString(); } if (idCardResult.getGender() != null) { sex = idCardResult.getGender().toString(); } if (idCardResult.getEthnic() != null) { nation = idCardResult.getEthnic().toString(); } if (idCardResult.getIdNumber() != null) { num = idCardResult.getIdNumber().toString(); } if (idCardResult.getAddress() != null) { address = idCardResult.getAddress().toString(); } nameEt.setText(name); cardEt.setText(num);// mContent.setText("姓名: " + name + "nn" +// "性别: " + sex + "nn" +// "民族: " + nation + "nn" +// "身份证号码: " + num + "nn" +// "住址: " + address + "nn"); } } } @Override public void onError(OCRError ocrError) { Toast.makeText(RealNameAuthenticationActivity.this, "识别出错,请查看log错误代码", Toast.LENGTH_SHORT).show(); Log.d("MainActivity", "onError: " + ocrError.getMessage()); } }); }```QQ群:548629089

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。