前言

最近开发微信小程序用到了图文识别的功能,刚开始还觉得很难,但其实配合一些第三方api接入,实现这个功能还是很简单的,下面我们一起来看看要怎么实现这个小功能吧。

1.首先我们需要注册一个百度云账号 (百度云地址)

2.注册完毕后搜索文字识别

3.点击创建应用,然后根据需求开通需要的功能


根据需要选择开通的项目


创建完后直接点击查看创建应用详情

4.复制已经创建应用的 AppID、API Key、Secret Key 的值,代码中会用到


5.上面一系列操作完成后,打开微信小程序社区平台配置服务器域名(微信小程序社区平台)


6.项目中使用

实例

index.wxml

<!-- 识别按钮 -->
<view class="btnBox"><button bindtap="doUpload">点击图文识字</button>
</view>
<!-- 识别的图片 -->
<view class="imgBox"><image src="data:image/png;base64,{{imageUrl}}" mode="aspectFit" />
</view>
<!-- 识别出来的内容 -->
<view class="contantBox">识别出来的内容:<text>{{contant}}</text>
</view>

index.js

Page({data: {contant: "", //识别内容imageUrl: "", //识别的图片},// 获取百度access_token  getBaiduToken: function () {var apiKey = 'NT0xub7LOs1rY6sM3a0LeZy7' //百度云上的apiKeyvar secKey = 'VpdqP4FjnPV0c7sXK3S128U07GYml5sQ' //百度云上的secKeyvar tokenUrl = `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${apiKey}&client_secret=${secKey}`; //调用百度云api接口var that = this; //防止this指向问题// 发送请求wx.request({url: tokenUrl,method: 'POST',dataType: 'json',header: {'content-type': 'application/json; charset-UTF-8'},// 返回数据success: function (res) {that.setData({baiduToken: res.data.access_token})},// 错误信息fail: function (res) {console.log("[BaiduToken获取失败]", res);}})},// 百度ORC接口调用  scanImageInfo: function (imageData) { // 将图片转换成base64格式var that = this; //防止this指向问题const detectUrl = `https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=${that.data.baiduToken}` // 调用百度云api接口并传递baiduTokenreturn new Promise(function (resolve, reject) {// 发送请求wx.request({url: detectUrl,data: {image: imageData},method: 'POST',dataType: 'json',header: {'content-type': 'application/x-www-form-urlencoded'},// 返回数据success: function (res, resolve) {var dataList = res.data.words_result[0].wordsconsole.log(res.data.words_result[0].words, "识别内容");// 赋值给data中定义的变量that.setData({contant: dataList})},// 错误信息fail: function (res, reject) {console.log('get dataList fail:', res.data);},})})},// 上传图片  doUpload: function () {var that = thisthat.getBaiduToken() // 提前获取access_Token// 选择图片,拍照或从相册中获取wx.chooseImage({count: 1,sizeType: ['compressed'],sourceType: ['album', 'camera'],success: function (res) {wx.showLoading({title: '上传中',})const filePath = res.tempFilePaths[0]// 上传图片        wx.getFileSystemManager().readFile({filePath: filePath,encoding: 'base64',// 返回数据success: function (res) {console.log("图片数据", res);// 识别的图片复赋值that.setData({imageUrl: res.data})that.scanImageInfo(res.data); // 调用百度API解析图片获取文字      },// 错误信息fail: function (res) {console.log("[读取图片数据fail]", res)},complete: function (res) {wx.hideLoading()}})}})},
})

index.wxss

.btnBox {padding: 10px 20px;
}.btnBox button {border-radius: 4px;background: rgb(95, 178, 90);color: white;font-size: 14px;
}.imgBox {margin: 0px 20px 10px 20px;height: 100%;display: flex;justify-content: center;
}.contantBox {padding: 0px 20px;
}.contantBox text {font-weight: bold;
}

实现效果

有关于在vue中如何实现识别功能的,大家可移步博主另一篇文章 vue基于百度云实现行驶证识别

微信小程序基于百度云实现图文识别(胎教级教程)相关推荐

  1. 微信小程序基于OCR插件实现图文识别(超简单)

    前言 前几天写了一个有关于微信小程序图文识别的功能,当时引用的是第三方百度云api实现的,那微信小程序官方有没有自带的方法或者插件能实现这个功能呢?经实践,还真有那么一个合适的插件,相对比第三方的调用 ...

  2. 微信小程序利用百度api达成植物识别

    看完本文你可学会: 如何使用百度智能云 如何在微信小程序中去接入百度api,达成植物识别的效果 如何使用百度智能云? 官网:https://cloud.baidu.com 进入官网,在用户中心下选择图 ...

  3. Django2.0+小程序技术打造微信小程序助手百度云

    原文配套视频资源获取链接:点击获取 原文配套源码资源获取链接:点击获取 第1章 课程导学 第2章 小程序开发入门 从几个方面介绍小程序开发相关的内容,包括小程序开发者账号注册.小程序开发流程.小程序开 ...

  4. 微信小程序开发百度云分享

    地址:https://pan.baidu.com/s/1O-VDu-VqcZsG-mDqxfbRSw#list/path=%2F  密码: sxm6

  5. 微信小程序基于云数据库简单实现帖子点赞功能。

    思路: 1·用云函数或者app.js获取用户openid,在每个帖子里面like_people数组里添加点赞过该帖子的用户openid.获取帖子云数据存放到suju:[]里. 2·点击点赞按钮图标变换 ...

  6. 微信小程序录音 第一篇 (基于微信小程序及百度AI的 人员语音识别转文字显示小程序)

    基于微信小程序及百度AI的 人员语音识别转文字显示小程序 基于微信小程序及百度AI的 人员语音识别转文字显示小程序主要分3篇 1.微信小程序录音篇(小程序基于wx.startRecord()微信语音录 ...

  7. 微信小程序基于云数据库实现点赞功能

    微信小程序基于云数据库实现点赞功能 微信小程序基于云数据库实现点赞功能 小Tips 2022.04.27 更新 微信小程序基于云数据库实现点赞功能 首先你要开通云开发,然后点击数据库创建集合(这里我的 ...

  8. 【中级】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 01 - 文件组成详细分析

    1 前言: 本文原创,欢迎转载,但是,务必保持原文并且给出原文链接. 微信小程序 - 腾讯云 - PHP - DEMO 是微信提供的一个微信小程序和腾讯云小程序云服务wafer 进行接口的例子. 本仓 ...

  9. 【基础问题】微信小程序 - 腾讯云 - 一站式方案 - PHP - wafer 和 wafer2的区别和wafer2的实践

    前言: 项目目前选择了腾讯小程序一站式部署,反而有点懵了,服务器怎么配置呢?好像接口没有,查询后,发现有的Demo有服务器配置有的没有,折腾观察了一会,原来有两个版本wafer.我把关键的地方高亮了, ...

最新文章

  1. php layui table,layui table 相关问题汇总
  2. 自己定义WinXP的时间校正服务器
  3. hdu 3819动态规划
  4. Springboot注册Servlet
  5. 面试高频问题:HashMap实现原理
  6. Https 加密原理分析
  7. linux 访问Windows 共享文件的方法
  8. Linux的下载命令wget详解
  9. 麦克马斯特大学计算机科学硕士,2020年麦克马斯特大学硕士要上多久才能毕业...
  10. kafka使用_Kafka生产者的使用和原理
  11. @EnableConfigurationProperties
  12. 管理感悟:不要别人扫自己的屁股
  13. 关于“超时时间已到”的问题
  14. Ubuntu18.04下,QT5移植到ARM板上运行程序发生异常:could not find or load the Qt platform plugin linuxfb原因
  15. 《“笨办法” 学C语言(Learn C The Hard Way)》
  16. Windows server 2012远程桌面会话主机和远程桌面授权。
  17. Python 浮点数的舍入,round与decimal舍入方式
  18. sequoia,一个非常通用的数据库集群解决方案
  19. 三菱FX3U PLC模拟量输入FB(FX2N-2AD)
  20. 【转】WinCE驱动开发问题精华集锦

热门文章

  1. 音视频卡顿问题的原因及解决方案
  2. java开发周报_Java周报
  3. 扇贝python编程课_扇贝编程app下载-扇贝编程手机版python「附如何设置自由职业」 - 超好玩...
  4. 20145212 罗天晨 网络欺诈技术防范
  5. 2020年Android开发的未来发展方向该如何走?
  6. 单用户计算机安全不包括什么,电子科技大20秋《计算机网络安全》在线作业1参考...
  7. 2022年618机顶盒哪款好?当贝盒子功能最全性价比更优
  8. 2022 互联网中秋月饼大赏,腾讯送火腿,字节寓意圆满,你最钟爱哪款呢?
  9. JAVA组件设计原则(二)原则一:精准解决共性问题(摘自《java组件设计》)
  10. Collections 的 emptyList()、emptyMap() 、emptySet()