微信小程序开发之菜品识别(调用百度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菜品识别接口)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/lily_808/article/details/105769256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/375141

相关文章

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

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口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 应

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac