小程序实现百度AI 银行卡识别功能

简介: 1.最近突然就想玩玩AI,资料也不多,干脆就找了简单的百度免费AI玩玩2.百度文档看的头疼,眼花,还是不如直接上手干3其实所有接口用法差不多,除了人脸识别需要但的sdk4.最终发现 最后使用的时候 用了不少 Promise

1. 前言


1.最近突然就想玩玩AI,资料也不多,干脆就找了简单的百度免费AI玩玩

2.百度文档看的头疼,眼花,还是不如直接上手干

3其实所有接口用法差不多,除了人脸识别需要但的sdk

4.最终发现 最后使用的时候 用了不少 Promise


2. 准备工作


1.注册百度AI账号 ,按步骤操作

2.创建应用

3.access_token 获取 主要熟练 api用法


3. 大概的界面


1.

`O91]9X5%G]4OQPLZJ38HNG.png


2.当然不会上传我的银行卡了哈哈


4. 布局代码



<view>
  <button type="primary" bindtap="showCamera">拍照识别</button>
  <button type="primary" bindtap="openLocalImage">图片识别</button>
  <!-- 相机标签 -->
  <camera wx:if="{{showCamera}}" device-position="{{pos}}">
    <cover-view hover-class="opa" bindtap="getPhoto"></cover-view>
    <cover-image bindtap="changePos" src="/public/changeCamera.png"></cover-image>
  </camera>
  <image src="{{imgUrl}}" mode="widthFix" bindlongpress="savePhoto"></image>
  <view class="hint" wx:if="{{imgUrl}}">长按保存图片</view>
</view>



5. 打开本地相册



// 打开本地相册
  async openLocalImage() {
    console.log("打开相册")
    let res = await wx.chooseImage({
      count: 1,
      sourceType: ['album'],
    })
    this.setData({
      imgUrl: res.tempFilePaths[0]
    })
    let res2 = await this.base64toUrlencode(res.tempFilePaths[0])
    let res3 = await this.recognition(res2)
    console.log('------识别------res3', res3)
  },



6.  百度AI 接口参数 要求


1.

1(6~]3P70NU@J2MVP$CW1H2.png




7. 图片转为base64再进行urlencode编码



base64toUrlencode(imgPath) {
    return new Promise((resolve, reject) => {
      wx.getFileSystemManager().readFile({
        filePath: imgPath,
        encoding: 'base64',
        success: (res2) => {
          resolve(decodeURI(res2.data))
        },
        fail(error) {
          reject(error)
        }
      })
    })
  },



8. 调用识别接口



recognition(imgPath) {
    return new Promise((resolve, reject) => {
      wx.request({
        url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=' + this.data.access_token,
        method: 'POST',
        header: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: {
          image: imgPath
        },
        success(res) {
          wx.showToast({
            title: '识别成功',
          })
          resolve(res)
        },
        fail(error) {
          wx.showToast({
            icon: 'error',
            title: '识别失败',
          })
          reject(error)
        },
      })
    })
  },

1.现在这个只是简写 大概的逻辑,具体的接口返回参数

2.

`3TF01)AZ@Y0OUQ`LJ9$(JP.png



9. 当然这个access_token 我在 onLoad的时候获取了


1.client_id

2.client_secret

3.这2个都需要创建应用的时候 生成


getToken() {
    wx.request({
      url: 'https://aip.baidubce.com/oauth/2.0/token',
      data: {
                 grant_type: 'client_credentials',
                 client_id: 'xxxxxxxxxxxxxxxxxxxxx',//用你创建的应用的API Key
                 client_secret: 'xxxxxxxxxxxxxxxxxxxxx'//用你创建的应用的Secret Key
               },
       header: {
                 'Content-Type': 'application/json' // 默认值
               },
      success: (res) => {
        console.log('res-----------', res)
        this.setData({
          access_token: res.data.access_token
        })
      },
      fail(error) {
        console.log('失败', error)
      }
    })
  },



10.打开相机



// 显示相机的函数 (默认在wxml中添加camera组件, 通过变量控制它的显示和隐藏)
  showCamera() {
    console.log("显示相机")
    this.setData({
      showCamera: true
    })
  },



11. 点击拍照



// 点击拍照的函数
  async getPhoto() {
    //创建 camera 上下文 CameraContext 对象。
    let context = wx.createCameraContext(this)
    // 拍摄照片
    try {
      let res = await context.takePhoto({
        quality: "low",
      })
      // res.tempImagePath 字段是照片的本地缓存路径
      this.setData({
        showCamera: false, // 隐藏相机
        imgUrl: res.tempImagePath
      })
      this.base64toUrlencode(res.tempImagePath)
      let res2 = await this.base64toUrlencode(res.tempImagePath)
      let res3 = await this.recognition(res2)
      console.log('------识别------res3', res3)
    } catch (error) {
      console.log("内存不足,拍照失败", err)
    }
  },



12. 长按保存



savePhoto() {
    if (!this.data.imgUrl) return;
    // 把图片保存到系统相册
    wx.saveImageToPhotosAlbum({
      filePath: this.data.imgUrl,
      success() {
        wx.showToast({
          title: '图片已保存',
        })
      }
    })
  },



13.切换摄像头



changePos() {
    this.setData({
      pos: this.data.pos == "back" ? "front" : "back"
    })
  },




相关文章
|
16天前
|
编解码 人工智能 监控
VISION XL:支持四倍超分辨率的 AI 视频修复处理工具,提供去除模糊、修复缺失等功能
VISION XL是一款基于潜在扩散模型的高效视频修复和超分辨率工具,能够修复视频缺失部分、去除模糊,并支持四倍超分辨率。该工具优化了处理效率,适合快速处理视频的应用场景。
68 6
VISION XL:支持四倍超分辨率的 AI 视频修复处理工具,提供去除模糊、修复缺失等功能
|
4天前
|
移动开发 小程序 前端开发
几千怎么部署搭建校园服务平台,校园圈子论坛系统小程序搭建,校园系统源码,多种功能一体的综合性校园平台
校园圈子论坛是一款集交友、二手市场、聊天等多功能于一体的校园社交平台,支持App、小程序和H5三端交付。学生可处理闲置物品、结识新朋友,通过算法匹配兴趣相投的用户。平台提供分享邀请机制,支持自动绑定推荐关系,并设有奖励机制。开发过程中需注重数据安全与系统稳定性,确保功能兼容及性能优化。
34 5
|
1天前
|
人工智能 API 数据库
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
Browser Use 是一款专为大语言模型设计的智能浏览器工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
57 0
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
|
1天前
|
人工智能 自然语言处理 搜索推荐
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
Open Notebook 是一款开源的 AI 笔记工具,支持多格式笔记管理,并能自动将笔记转换为博客或播客,适用于学术研究、教育、企业知识管理等多个场景。
34 0
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
|
4天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
49 3
|
7天前
|
小程序 安全 搜索推荐
陪玩小程序的搭建解析与功能需求
陪玩小程序是为玩家提供专业陪玩服务的应用,嵌入社交或游戏平台,具备智能匹配、实时聊天、预约服务等功能,支持便捷高效的游戏体验。源码交付时需提供详细文档、技术支持及定制开发服务,确保客户能顺利维护和升级。选择陪玩小程序时应关注功能需求、用户体验、安全性和成本效益,以确保最佳使用效果。
36 0
|
28天前
|
机器学习/深度学习 人工智能 语音技术
Fugatto:英伟达推出的多功能AI音频生成模型
Fugatto是由英伟达推出的多功能AI音频生成模型,能够根据文本提示生成音频或视频,并修改现有音频文件。该模型基于增强型的Transformer模型,支持复杂的组合指令,具有强大的音频生成与转换能力,广泛应用于音乐创作、声音设计、语音合成等领域。
67 1
Fugatto:英伟达推出的多功能AI音频生成模型
|
4天前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
29天前
|
人工智能 JavaScript 数据可视化
深入探索 Flux Tools 在 AI 图像创作中的强大功能
Flux Tools 是由 Black Forest Labs 开发的一套先进 AI 图像编辑工具,集成了修补、扩展、深度映射和边缘检测等功能,为用户提供高精度的图像控制能力,广泛应用于照片编辑、数字艺术创作和设计工作等领域,极大提升了创作效率与自由度。
|
1月前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。