微信小程序开发之菜品识别(调用百度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后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统