微信小程序开发之菜品识别(调用百度AI菜品识别接口)

2023-11-09 08:50

本文主要是介绍微信小程序开发之菜品识别(调用百度AI菜品识别接口),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

运行效果

用户点击选择图片或者拍照按钮,选择一张图片上传之后显示在图片区域,点击菜品识别,系统对菜品识别之后弹出对话框来提示菜品名称和热量,用户点击确定查看菜品详情。

 

小程序概述

此小程序主要调用了百度AI菜品识别的接口,项目可根据用户上传的图片来判断图片中菜品的名称/菜品的热量,并获取百度百科中关于菜品的详细说明。在wxml页面中,为了使得菜品图片呈现的更鲜艳,加了一个具有小圆点边框的背景,这里使用css样式来实现;中间部分是两个图片按钮,分别链接到选择图片或拍照函数和菜品识别函数,考虑到按钮样式不太好看,这里使用的是图片加文字的样式来呈现;最下方是根据用户的选择利用一个滚动区域来呈现菜品的详情,当用户确认要查看详情时,将此菜品百度词条内容和图片呈现出来,当然这里也可以跳转到百度百科页面,大家可以获取参数后自行设置。

小程序重点

1  用户上传图片要进行处理为base64格式编码,这样才可以传递给百度ai的api进行处理,用户上传图片可以直接使用wx.chooseImage()方法,图片上传成功之后可以获取到图片的临时路径,而临时路径的图片必须获取到才能处理为base64格式编码,这里使用wx.getFileSystemManager().readFile()方法,通过提供图片路径和编码格式来获取图片base64格式编码,这样就可以将编码之后的数据传递到百度ai的菜品api中进行处理

2  用户access_token的获取,官方文档已经给出了比较详细的说明,我们需要提供client_id和client_secret来进行获取,将这两个数据传递到官方给的api中,就可以获取到access_token,它的有效期为一个月,我们可以每次重新获取,也可以获取之后将其设置为常量,不再调用获取方法。

3  闪点效果的实现,这里是参考一个大转盘抽奖的效果,圆点的位置是存储到数组中,wxml中对数组进行遍历渲染,圆点闪现利用了计时器的方法,每隔0.5秒更换一下圆点的背景色来实现。

4  判断之后菜品数据的获取,其实这一部分也比较简单,可以通过console.log(res.data)输出返回的数据,在调试器中查看,然后依据数据层级来逐级调用显示即可,下图是输出的数据,大家可以看一下,正常情况下是可以显示出这个菜品所有可能的情况,我这里只显示了可能性最高的一种菜品,并且百度百科链接和文字的呈现需要在data中传递相关的参数才可以。

 

主要代码

01小圆点wxml代码

02菜品详情wxml代码

03图片base64编码

04获取token值js代码

05接口获取菜品信息

06闪点js代码

注:图标图片来源与阿里巴巴矢量图标库,可利用新浪账号登陆之后选择合适的颜色大小来下载使用

       百度AI菜品识别API调用之前需要完成个人账号的注册,以此来获取id和key

       页面效果为个人简单调试,不适之处大家可自行修改。 

如需源码,可关注以下公众号

小李老师爱学习

后台回复“菜品识别小程序”获取

这篇关于微信小程序开发之菜品识别(调用百度AI菜品识别接口)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/375141

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应