第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 小程序调用百度api实现图像识别

小程序调用百度api实现图像识别

时间:2019-06-07 14:22:20

相关推荐

小程序调用百度api实现图像识别

一、获取app_key和secret_key

1.1首先需要去百度智能云搜索图像识别

1.2创建应用--领取免费资源(我已经创建了应用,这个是可以免费使用一年的,测试够了)

1.3获取app_key和secret_key

点进上一张图的管理应用即可查看相应信息

二、获取token

2.1首先判断storage中是否已经有token

onLoad() {// 自定义头部导航栏文字wx.setNavigationBarTitle({title: '垃圾搜索'});//获取storge中的tokenvar that=this;wx.getStorage({key:'expires_in',success(res){// 获取成功,证明本地已存有相关tokenconst newT =new Date().getTime();// // 用当前时间和存储的时间判断,token是否已过期if (newT > parseInt(res.data)) {// token过期,重新获取tokenthat.getToken();} else {// 获取本地缓存的tokenlet token=wx.getStorageSync('access_token');that.setData({token:token});}},fail(){that.getToken();}});},

2.2 getToken函数

// 获取tokengetToken:function(){var that=this;// client_id:app_key需要自己去百度智能云创建相应的应用后获取//client_secret:Secret Keyconst url = '/oauth/2.0/token'+'?grant_type=client_credentials'+'&client_id=app_key&client_secret=client_secret';wx.request({url:url,method: 'POST',success: res => {console.log(res)let thaRres=res.data;// 将access_token存储到storage中wx.setStorage({key:'access_token',data:thaRres.access_token});var date=new Date().getTime();let time=date+2592000*1000;console.log('三十天后的时间',time);console.log('当前时间戳',date)wx.setStorage({key:'expires_in',data:time});that.setData({token:thaRres.access_token});/*access_token: 要获取的Access Token;expires_in: Access Token的有效期(秒为单位,一般为1个月);*/},fail: () => {}});},

三、进行图像识别

// 点击相机图标时cameraTap:function(){console.log('点击相机');var that=this;wx.chooseImage({success: res => {wx.getFileSystemManager().readFile({filePath: res.tempFilePaths[0], //选择图片返回的相对路径encoding: 'base64', //编码格式success: res => { //成功的回调// 图片wx.showLoading({title: '识别中...',})var image = res.data;// 文字识别wx.request({url: '/rest/2.0/image-classify/v2/advanced_general?access_token='+that.data.token,data: {image: image},header: {'Content-Type': 'application/x-www-form-urlencoded'},method: 'POST',success(res) {console.log(res.data)wx.hideLoading({success: (res) => {},})//此处接处理识别结果的函数,可见下一篇文章:/Moxi099/article/details/120617526?spm=1001..3001.5501},fail:()=>{wx.hideLoading();wx.showToast({title: '图片识别失败,请重试!',icon: 'none'});}})}})}})},

至此大功告成,返回的数据如下:

result就是最终需要的数据了!

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