第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 微信小程序+百度AI OCR二代身份证识别

微信小程序+百度AI OCR二代身份证识别

时间:2021-12-05 20:44:51

相关推荐

微信小程序+百度AI OCR二代身份证识别

微信小程序内虽然有OCR识别功能 但是收费是按次计费的,还是选用了百度ai提供的OCR识别二代身份证。

// 上传人面像upFileFront:function(e){let type = e.currentTarget.dataset.typelet self = this;wx.chooseImage({count:1,sourceType: ["album", "camera"],success (res) {var tempFilesSize = res.tempFiles[0].size; //获取图片的大小,单位Bif (tempFilesSize <= 10000000) {//图片小于或者等于10M时 可以执行获取图片self.setData({frontLoad: true})const tempFilePaths = res.tempFilePaths;wx.uploadFile({url: app.globalData.domain + '/baiduAI/idCardOrc', //这个是后台提供已经处理过的接口filePath: tempFilePaths[0],name: 'file',formData: {idCardSide: "front"},success(res) {let result = JSON.parse(res.data)if (result.code == 200) {let imgStatus = self.checkStatus(result.data.image_status);if (imgStatus != 1) {wx.showModal({content: imgStatus,showCancel: false,confirmColor: "#429dff",confirmText: "确定"})}else {self.setData({positiveImg: tempFilePaths[0]})}}else {wx.showModal({content: res.data.message,showCancel: false,confirmColor: "#429dff",confirmText: "确定",success: function (res) {if (res.confirm) {wx.navigateBack()}}})}},complete() {self.setData({frontLoad: false})}})} else {wx.showToast({title: '上传图片不能大于10M!', //标题icon: 'none' //图标 none不使用图标,详情看官方文档})}}})},checkStatus: function(status){//返回OCR识别验证的结果switch (status) {case "normal": //识别正常return "1"break;case "reversed_side": //身份证正反面颠倒return "身份证正反面颠倒"break;case "non_idcard": //上传的图片中不包含身份证return "上传的图片中不包含身份证"break;case "blurred": //身份证模糊return "身份证模糊"break;case "other_type_card": //其他类型证照return "其他类型证照"break;case "over_exposure": //身份证关键字段反光或过曝return "身份证关键字段反光或过曝"break;case "over_dark": // 身份证欠曝(亮度过低)return "身份证欠曝(亮度过低)"break;case "unknown": //未知状态return "未知状态"}},

以上是将图片传给后台, 让后台自行把图片处理过后再到百度AI平台进行OCR识别。百度AI平台的OCR身份证识别可以同过官方发布的规则进行:

百度AI平台身份证识别帮助文档

如果后台没有对图片进行处理, 前端可以将选择的图片进行base64位转换之后再传给后台:

upFileFront:function(e){let type = e.currentTarget.dataset.typelet self = this;wx.chooseImage({count:1,sourceType: ["album", "camera"],success (res) {var tempFilesSize = res.tempFiles[0].size; //获取图片的大小,单位Bif (tempFilesSize <= 10000000) {//图片小于或者等于2M时 可以执行获取图片self.setData({frontLoad: true})const tempFilePaths = res.tempFilePaths;wx.getFileSystemManager().readFile({//核心代码,将选中的图片进行base64位格式转换filePath: res.tempFilePaths[0],encoding: 'base64', //编码格式success(result) {console.log(result.data)wx.request({//百度AI平台 OCR识别链接 同时带参数请求//请求URL:/rest/2.0/ocr/v1/idcardurl: '',data: '',header: {},method: 'GET',dataType: 'json',responseType: 'text',success: function(res) {},fail: function(res) {},complete: function(res) {},})}})} else {wx.showToast({title: '上传图片不能大于10M!', //标题icon: 'none'})}}})},

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。