uniapp: 前端利用百度云OCR实现文字识别(身份证识别功能,别的功能类似)

第一章 前言

  • 介绍如何使用百度智能云实现我们想要的效果,需要在下面这个网址注册账号:

百度智能云-云智一体深入产业

  • 使用文档在该网址上:

简介 - 文字识别OCR

  • 请求成功的效果,如下图: 

 

  •  搜索产品(例如文字识别)-> 立即使用 -> 免费领取 -> 创建应用 (跟着步骤走就好了)

  • 创建成功后,应用列表,如下图

  • 进入管理,如下图:(注意框的内容是需要用到的字段

第二章 实战

  • 根据文档需求获取Access Token(Access Token的有效期(秒为单位,有效期30天);)
  • 注意:Access Token是有有效期的,所以需要定时或者在打开页面时就获取它(登录页也可),小编是测试功能的,所以在进入有识别的页面获取的

代码如下:(这些都是uniapp原生api,小编就不每句代码都解释一下了,具体可看官网)

<template><view class="content"><uni-nav-barleft-icon="back" :fixed="true"@clickLeft="back2Index" title="身份证测试平台"backgroundColor="#1677FF"height="88rpx"color="#fff":border="false"safeAreaInsetTop></uni-nav-bar><button @click="chooseImage">选择图片</button></view>
</template><script>export default {data() {return {dataObj: {client_id: 'API Key',client_secret: 'Secret Key',},accessToken: ''}},onLoad() {// 方法调用this.getAccessToken()},methods: {// 百度云获取accessTokengetAccessToken() {let self = this// 请求uni.request({url: '/baiduApi/oauth/2.0/token',data: {grant_type: 'client_credentials',client_id: self.dataObj.client_id,client_secret: self.dataObj.client_secret},dataType: "JSONP",method: 'POST',header: {'Content-Type': 'application/x-www-form-urlencoded',},success: (res) => {// 将得到的res先转对象,在.点出我们想要的值this.accessToken = JSON.parse(res.data).access_tokenconsole.log('accessToken', this.accessToken)},fail(err) {console.log("访问失败", err)}})},back2Index(){uni.navigateBack()},}}
</script>

注意:这里请求的携带的三个参数:grant_type、client_id、client_secret,grant_typeclient_credentials表示身份证识别,值固定直接根据官方文档赋值即可,client_id和client_secret对应的是第一章圈的两个字段,分别应用创建成功的API Key和Secret Key

 注:小编统计的常用api

uniapp常用api_❆VE❆的博客-CSDN博客

  • 得到 Access Token之后就能选择图片了:
methods: {// 选择图片chooseImage() {let self = this// 这也是uniapp原生apiuni.chooseImage({count: 1,success: (ress) => {uni.showLoading({title: '正在识别中...'})// 下面将图片本地路径转base64console.log('ress', ress)self.toBase64(ress.tempFilePaths[0]).then((res) => {console.log("res", res)// 该函数是识别身份证的 也就是这个函数用到OCR百度云的接口self.uploadImage(res)})},fail(err) {uni.hideLoading()console.log(err)}})},// 转换为base64的函数toBase64(path){return new Promise((resolve, reject) => {uni.request({url: path,responseType: 'arraybuffer',success: (res) => {resolve(uni.arrayBufferToBase64(res.data))}})})},
}
  •  发送请求,识别身份证正反面获取的信息:
methods: {// 身份证识别uploadImage(path) {let self = thisuni.request({url: '/baiduApi/rest/2.0/ocr/v1/idcard',data: {image: path, // 图片的base64路径access_token: self.accessToken, // Access Tokenid_card_side: 'front' // front身份证正面 back身份证反面},method: 'POST',header: {'Content-Type': 'application/x-www-form-urlencoded'},success: (res) => {uni.hideLoading()console.log('res', res) // 这就是调用百度云OCR接口成功返回的值},fail(err) {uni.hideLoading()console.log(err)}})},
}
  • 千万不要忘了还有跨域的问题哦!!!配置如下:
"h5" : {"devServer" : {"port" : 8000,"disableHostCheck" : true,"proxy" : {"/baiduApi" : {"target" : "https://aip.baidubce.com", // 需要跨域的域名"changeOrigin" : true,"secure" : false,"pathRewrite" : {"^/baiduApi" : ""}}}},
}

 https://aip.baidubce.com/oauth/2.0/token报错blocked by CORS policy-CSDN博客

  • 我们来看看res的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python脚本-网页爬虫获取网页图片

python脚本-网页爬虫获取网页图片 代码 import requests import re import time url"http://10.9.47.154/python-spider/" # 爬取网站的url headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …

Linux中的高级IO

文章目录 1.IO1.1基本介绍1.2基础io的低效性1.3如何提高IO效率1.4五种IO模型1.5非阻塞模式的设置 2.IO多路转接之Select2.1函数的基本了解2.2fd_set理解2.3完整例子代码&#xff08;会在代码中进行讲解&#xff09;2.4优缺点 3.多路转接之poll3.1poll函数的介绍3.2poll服务器3.…

51单片机汇编-点亮一个led

文章目录 前言1.打开IDE2.设置编辑器3.设置输出4. 原理图5.编写代码6 编译7.下载8.其它代码1.LED闪烁2.跑马灯 前言 51单片机基础 本章主要介绍打开一个led,具体采用51汇编 1.打开IDE 选择STC89C52RC 后缀是.asm 2.设置编辑器 3.设置输出 4. 原理图 5.编写代码 ORG 00H;伪代…

linux之按键中断

查看原理图确认引脚 可以看到按键有两个&#xff0c;分别对应GPIO5_1和GPIO4_14 配置pinctrl&#xff0c;配置成GPIO模式 1.使用官方工具&#xff0c;配置下引脚 2.将生成的代码复制到设备树里 创建设备节点 生成二进制设备树文件 在工具链表下使用 make dtbs 或者使…

加法运算、 || 、 赋值运算

一、加法运算 在这里插入图片描述 二、&& || 三、赋值运算 四、js类型就八种&#xff1a; 五、css权重、 六&#xff1a;布局&#xff0c;尽量使用块盒。 七、小数精度存储的问题&#xff1a;存的不精确&#xff0c;算的肯定也是有问题的。 八、找单身狗算法题…

Unity之UI、模型跟随鼠标移动(自适应屏幕分辨率、锚点、pivot中心点)

一、效果 UI跟随鼠标移动, 动态修改屏幕分辨率、锚点、pivot等参数也不会受到影响。同时脚本中包含3d物体跟随ui位置、鼠标位置移动 二、屏幕坐标、Canvas自适应、锚点、中心点 在说原理之前我们需要先了解屏幕坐标、Canvas自适应、锚点、中心的特性和之间的关系。 1.屏幕坐标…

Leetcode—110.平衡二叉树【简单】

2023每日刷题&#xff08;十九&#xff09; Leetcode—110.平衡二叉树 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int preFunc(struct TreeNode* root) {if(root…

【入门Flink】- 06Flink作业提交流程【待完善】

Standalone 会话模式作业提交流程 代码生成任务的过程&#xff1a; 逻辑流图&#xff08;StreamGraph&#xff09;→ 作业图&#xff08;JobGraph&#xff09;→ 执行图&#xff08;ExecutionGraph&#xff09;→物理图&#xff08;Physical Graph&#xff09;。 作业图算子链…

@Slf4j将日志记录到磁盘和数据库

文章目录 1、背景介绍2、存本地2.1、配置文件2.2、使用 3、存数据库3.1、配置文件改造3.2、过滤器编写3.3、表准备3.4、添加依赖3.5、测试 4、优化4.1、日志定期删除 1、背景介绍 现在我一个SpringBoot项目想记录日志&#xff0c;大概可以分为下面这几种&#xff1a; 用户操作…

一天写一个(前端、后端、全栈)个人简历项目(附详源码)

一、项目简介 此项目是用前端技术HTMLCSSjquery写的一个简单的个人简历项目模板&#xff0c;图片可点击放大查看&#xff0c;还可以直接下载你的word或者PDF的简历模板。 如果有需要的同学可以直接拿去使用&#xff0c;需自行填写个人的详细信息&#xff0c;发布&#xff0c;…

峰回网关数采PLC

1.网络配置 例如&#xff1a;plc地址是192.168.1.56 1.访问网关 峰回网关默认网关地址 192.168.3.18&#xff0c;或者&#xff08;10.10.253.354&#xff09;&#xff0c;本案例按照3.18讲解。 1和1相连&#xff0c;0和电脑相连 本地电脑修改ip为192.168.3.3&#xff08;和3…

6 从物理层到MAC层

1、实现局域网中玩游戏 在早期的80后的大学宿舍中&#xff0c;组件一个宿舍的局域网&#xff0c;以便于宿舍内部可以玩游戏. 第一层&#xff08;物理层&#xff09; 1.首先是实现电脑连接电脑&#xff0c;需要依靠网线&#xff0c;有两个头。 2.一头插在一台电脑的网卡上&am…