当前位置:网站首页 > 数据科学与大数据 > 正文

身份证、银行卡、车牌、图片文字识别、黄图识别、驾驶证识别库实现功能

预览图效果:

原文来自:http://code.662p.com/view/19388.html  ,需要自己去下载就可以了。

使用

依赖

implementation 'com.shouzhong:Scanner:1.1.3' 

以下选择自己需要的

// zxing implementation 'com.google.zxing:core:3.3.3' // zbar implementation 'com.shouzhong:ScannerZBarLib:1.0.0' // 银行卡识别 implementation 'com.shouzhong:ScannerBankCardLib:1.0.3' // 身份证识别 implementation 'com.shouzhong:ScannerIdCardLib:1.0.4' // 车牌识别 implementation 'com.shouzhong:ScannerLicensePlateLib:1.0.3' // 图片文字识别 implementation 'com.shouzhong:ScannerTextLib:1.0.0' // 黄图识别 implementation 'com.shouzhong:ScannerNsfwLib:1.0.0' // 驾驶证识别 implementation 'com.shouzhong:ScannerDrivingLicenseLib:1.0.1' // 身份证识别(第二种方式) implementation 'com.shouzhong:ScannerIdCard2Lib:1.0.0' 

代码

基本使用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.shouzhong.scanner.ScannerView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="1080px" android:background="#000000"/> </RelativeLayout> 
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scanner); scannerView = findViewById(R.id.sv); scannerView.setViewFinder(new ViewFinder(this)); scannerView.setSaveBmp(true); scannerView.setEnableZXing(true); scannerView.setEnableZBar(true); scannerView.setEnableBankCard(true); scannerView.setEnableIdCard(true); scannerView.setEnableLicensePlate(true); scannerView.setCallback(new Callback() { @Override public void result(Result result) { tvResult.setText("识别结果:\n" + result.toString()); scannerView.restartPreviewAfterDelay(2000); } }); } @Override protected void onResume() { super.onResume(); scannerView.onResume(); } @Override protected void onPause() { super.onPause(); scannerView.onPause(); } 

开启或者关闭某个识别器

// 启用zxing识别器 scannerView.setEnableZXing(true); // 启用zbar识别器 scannerView.setEnableZBar(true); // 启用银行卡识别器 scannerView.setEnableBankCard(true); // 启用身份证识别器(这里只支持2代身份证) scannerView.setEnableIdCard(true); // 启用车牌识别 scannerView.setEnableLicensePlate(true); // 启用驾驶证识别 scannerView.setEnableDrivingLicense(true); // 启用身份证识别(第二种方式) scannerView.setEnableIdCard2(true); 

如果你想自定义识别器

scannerView.setScanner(new IScanner() { / * 这里实现自己的识别器,并把识别结果返回 * * @param data 矩形框内nv21图像数据 * @param width 图像宽度 * @param height 图像高度 * @return * @throws Exception */ @Override public Result scan(byte[] data, int width, int height) throws Exception { // 如果你想转为Bitmap,请使用NV21.nv21ToBitmap(byte[] nv21, int width, int height) return null; } }); 

这里没给默认的预览页面,需要自己自定义,请参考demo

回调说明

Result

属性 说明
TYPE_CODE 类型:二维码/条码
TYPE_ID_CARD_FRONT 类型:身份证人头面
TYPE_ID_CARD_BACK 类型:身份证国徽面
TYPE_BANK_CARD 类型:银行卡
TYPE_LICENSE_PLATE 类型:车牌
TYPE_DRIVING_LICENSE 类型:驾驶证
type 结果类型
path 保存的图片路径
data 数据
// 以下是对data的说明 // 当type为TYPE_CODE,TYPE_BANK_CARD,TYPE_LICENSE_PLATE时,data为字符串 // 当type为TYPE_ID_CARD_FRONT时,data为json字符串,格式如下 { "cardNumber": "",// 身份证号 "name": "张三",// 姓名 "sex": "男",// 性别 "nation": "汉",// 民族 "birth": "1999-01-01",// 出生 "address": "地址"// 地址 } // 当type为TYPE_ID_CARD_BACK时,data为json字符串,格式如下 { "organization": "签发机关",// 签发机关 "validPeriod": "-"// 有效期限 } // 当type为TYPE_DRIVING_LICENSE时,data为json字符串,格式如下 { "cardNumber": "",// 证号 "name": "张三",// 姓名 "sex": "男",// 性别 "nationality": "中国",// 国籍 "address": "地址",// 地址 "birth": "1999-01-01",// 出生日期 "firstIssue": "2018-01-01",// 初次领证日期 "_class": "C1",// 准驾车型 "validPeriod": "-"// 有效期限 } 

BankCardInfoBean

属性或方法 说明
cardNumber 银行卡号
cardType 银行卡(英文)类型
bank 银行(英文)名称
getCNBankName 获取银行(中文)名称
getBankId 获取银行编号
getCNCardType 获取银行卡(中文)类型

方法说明

ScannerView

方法名 说明
setViewFinder 扫描区域
setCallback 扫码成功后的回调
setCameraDirection 摄像头方向,后置为Camera.CameraInfo.CAMERA_FACING_BACK,前置为Camera.CameraInfo.CAMERA_FACING_FRONT
setEnableZXing 是否启用zxing识别器,默认false
setEnableZBar 是否启用zbar识别器,默认false
setEnableQrcode 是否启动二维码识别,默认true,只有在zxing或者zbar开启时有效
setEnableBarcode 是否启动条码识别,默认true,只有在zxing或者zbar开启时有效
setEnableBankCard 是否启用银行卡识别器,默认false
setEnableIdCard 是否启用身份证识别器,默认false
setEnableIdCard2 是否启用身份证识别器(第二种方式),默认false
setEnableDrivingLicense 是否启用驾驶证识别器,默认false
setEnableLicensePlate 是否启用车牌识别器,默认false
setScanner 自定义识别器
onResume 开启扫描
onPause 停止扫描
restartPreviewAfterDelay 设置多少毫秒后重启扫描
setFlash 开启/关闭闪光灯
toggleFlash 切换闪光灯的点亮状态
isFlashOn 闪光灯是否被点亮
setShouldAdjustFocusArea 设置是否要根据扫码框的位置去调整对焦区域的位置,部分手机不支持,默认false
setSaveBmp 设置是否保存识别的图片,默认false
setRotateDegree90Recognition 是否在原来识别的图像基础上旋转90度继续识别,默认false

ScannerUtils

方法名 说明
decodeCode 二维码/条码识别,建议在子线程运行
decodeBank 银行卡识别,建议在子线程运行
getBankCardInfo 获取银行卡信息,请在子线程运行
decodeIdCard 身份证识别,建议在子线程运行
decodeId2Card 身份证识别(第二种方式),建议在子线程运行
decodeDrivingLicense 驾驶证识别,建议在子线程运行
decodeLicensePlate 车牌识别,建议在子线程运行
decodeText 图片文字识别,请在子线程运行
decodeNsfw 黄图识别,大于0.3可以说图片涉黄,建议在子线程运行
createBarcode 条码生成,建议在子线程运行
createQRCode 二维码生成,建议在子线程运行
addLogo 往图片中间加logo

NV21

方法名 说明
nv21ToBitmap nv21转bitmap
bitmapToNv21 bitmap转nv21
到此这篇身份证、银行卡、车牌、图片文字识别、黄图识别、驾驶证识别库实现功能的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 中文乱码字幕视频观看的免费网站2024-11-24 17:45:05
  • 公共数据开放服务2024-11-24 17:45:05
  • 【八爪鱼】免费爬虫软件——获取各种网页数据的一款APP♣2024-11-24 17:45:05
  • 地图数据设计(四):地图比例尺2024-11-24 17:45:05
  • 河南统计年鉴2023-2000数据含省级及各地级市人口就业GDP教科文财政收支城市经济开发功能区指标提供统计年鉴2000-2023(数据年度1999-2022)多年度的年鉴数据:EXCEL/PDF2024-11-24 17:45:05
  • 如何防止数据泄漏?推荐十款数据防泄漏软件2024年最佳防泄漏软件2024-11-24 17:45:05
  • 探索全球:MySQL 中的国家、地区和城市标准化数据库2024-11-24 17:45:05
  • 探索《魔兽世界》数据库中文版:一个技术驱动的玩家资源库2024-11-24 17:45:05
  • 解锁数据新世界!一网打尽最全数据统计宝藏网站2024-11-24 17:45:05
  • 微信聊天记录删除过了还能恢复吗?试试这2款超好用的数据恢复软件2024-11-24 17:45:05
  • 全屏图片