最后编辑于2022-04
【使用攻略】【图像识别】【红酒识别】
本期活动,小帅就来带开发者们快速将红酒识别接入百度智能小程序哦
接口文档 https://ai.baidu.com/docs#/ImageClassify-API/71e05fb6
如何创建应用。获取accesstoken 记得一定要看文档的接入指南哦。官方已经给了图文教程。小帅这里就不再重复说明了。
图片不清晰的请看这里 https://my.oschina.net/xshuai/blog/3075992
--------------------------------------------分割线--------------------------------------------
- 创建自己的百度智能小程序
官网链接 https://smartprogram.baidu.com/developer/index.html
- 小程序名称信息填写
名称需要审核哦最好不要重名、选择一个自己小程序的LOGO、简介、
服务范围(一定要选择正确哦)、标签就自己找针对性的关键词添加即可
- 查看自己的小程序
设置-开发设置 记录自己的小程序id appkey、appsecret等相关重要信息 备用
继续往下。找到服务器域名 并配置百度ai接口域名 和 图片转base64的域名
https://www.ydxiaoshuai.cn
https://aip.baidubce.com
- 开发工具创建小程序
填写自己小程序的appid、名称、项目目录后点击完成即可
- 开始编写小程序代码
图片转base64 百度智能小程序暂无直接可用组件或api。
小帅为了方便大家。就封装了一个在线的http的接口供大家使用。
接口说明地址 https://www.kancloud.cn/ydxiaoshuai/image2base64/1170322
先来写接口工具类等其他方法
baiduai.js
/**
* 调用百度红酒识别示例代码 baiduai.js
*/
//图片转base64接口
let img2base64Url = 'https://www.ydxiaoshuai.cn/image/convert/base64/v1';
let accessToken = ''//自己的accessToken 根据实际情况可以进行封装 自动获取token
let redwineUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/redwine';//红酒识别接口
//红酒接口 图片数据 返回结果
let redwineRequest = (base64Img,callback)=>{
//拼接接口body参数
let params = {
image:base64Img
}
//发送接口请求
swan.request({
url: redwineUrl + '?access_token=' + accessToken,
data:params,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'POST',
success:function(res){
callback.success(res.data)
},
fail: function (res) {
if (callback.fail)
callback.fail()
}
})
}
function getImg2base64(){
return img2base64Url;
}
//暴露出去的接口&参数
module.exports = {
redwineRequest: redwineRequest,
getImg2base64: getImg2base64
}
- 编写页面样式及相关代码
- 页面index.swan
页面需要一个上传图片的按钮 和图片回显的区域 还有接口识别返回的数据显示的区域
带html标签代码 老是被自动解析。只能图片示例了
样式index.css
给一些稍微友好 好看的ui样式
.image {
width: 100%;
height: 360rpx;
}
button{
font-family: 微软雅黑;
}
text{
font-family: 微软雅黑;
}
.page-body-info {
display: flex;
box-sizing: border-box;
padding:60rpx;
height:840rpx;
border-top: 2rpx solid #D9D9D9;
border-bottom: 2rpx solid #D9D9D9;
align-items: center;
justify-content: center;
}
.faceInfo{
font-size: 28rpx;
display:block;
margin:0 auto;
margin-left: 33%;
}
.faceInfoValue{
color: #1BA0E1;
letter-spacing:0px;
}
.chooseImg {
display:block;
margin:0 auto;
color: rgb(255, 255, 255);
font-size: 40rpx;
font-family: 微软雅黑;
width: 400rpx;
height: 100rpx;
text-align: center;
line-height: 90rpx;
border-radius:50rpx;
background-color:#3366FF;
margin-top:10px;
}
.img_wrap {
width: 750rpx;
height: 620rpx;
background: #ececec;
}
image {
width: 100%;
height: 100%;
max-height: 1
}
.msg {
margin: 20rpx 0;
text-align: center;
}
.table {
margin-top: 10rpx;
border: 0px solid darkgray;
}
.tr {
display: flex;
width: 100%;
justify-content: center;
height: 80rpx;
}
.td {
font-size: 28rpx;
width:40%;
display: flex;
justify-content: center;
text-align: center;
align-items: center;
}
.bg-w{
}
.bg-g{
background: white;
}
.th {
font-size: 28rpx;
width: 48%;
justify-content: center;
background: #3366FF;
color: #fff;
display: flex;
height: 80rpx;
align-items: center;
}
.inner_text{
font-size: 36rpx;
color: #1BA0E1;
font-family: 微软雅黑;
word-break: normal;
word-wrap: break-word;
}
.out_text{
margin-top:20rpx;
margin-left: 10rpx;
margin-right: 10rpx;
border: 1rpx solid rgb(238, 238, 238);
padding:10rpx 10rpx;
font-size: 36rpx;
font-family: 微软雅黑;
}
- 编写页面处理代码
需要上传图片到小帅的图片转base64接口。
返回base64数据。再给接口进行识别。
返回数据进行页面渲染。步骤不是很多哦
var app = getApp();
//引用封装的工具类方法、图片转base64接口地址
var redWine = require('../../utils/baiduai.js');
var img2base64Url = redWine.getImg2base64();
Page({
data: {
title: '酒知识 一步即知',
result:null,
img:""
},
uploads: function() {
var that = this;
swan.chooseImage({
count: 1,
sizeType: ['compressed'],
success: res => {
let image = "";
if(res.tempFiles[0].size > 4096*1024){
console.info('jinlaile ');
swan.showToast({
title: '图片文件过大哦',
icon:'none',
mask:true,
duration:1500
});
}else{
image = res.tempFilePaths[0];
}
that.setData({
img:image
}),
swan.showLoading({
title: '信息正在赶来的路上',
mask: true
}),
//上传图片进行base64转换
swan.uploadFile({
url: img2base64Url,
filePath: image,
name: 'file',
success:function(res){
var data = res.data;
console.info('图片转base64返回的结果:'+data.code);
//如果成功,进行调用红酒识别接口
if(data.code==200){
redWine.redwineRequest(data.data.base64,{
//接口返回数据。对数据进行赋值
success(res){
swan.hideLoading();
that.setData({
result:res.result
})
console.info(res)
},
fail(res){
swan.hideLoading();
swan.showModal({
title: '识别失败',
content: '稍后再试一试'
});
}
})
} else {
swan.showModal({
title: '图片转换出错',
content: '图片转换出错'
});
}
}
});
}
});
},
});
- 准备图片进行功能测试
- 红酒图
- 小程序演示图
- 上传代码进行发布
- 上传代码
版本号、描述 自己定义即可 最低基础库 需要选择哦
- 提交审核
开发管理-开发版本 提交审核 也可以选为体验版 供部分人员优先体验
测试账号 如果没有 填写 无 即可 对自己版本的描述 自己编写即可 提交审核即可
--------------------------------------------分割线--------------------------------------------
本次分享end~~~
大家也可以用百度app 扫码体验哈
请登录后评论
TOP
切换版块
图片看不清晰的。原图可以访问这里:
链接: https://pan.baidu.com/s/1fT1tXJ5JBqF4EsgjHur-1A 提取码: deex
代码文本版本的也可以看这篇博文
https://my.oschina.net/xshuai/blog/3075992
大佬全栈ai开发者
企业认证我记得需要打款确认 是百度给你打钱 应该没有什么年费认证的吧 建议你最好是去智能小程序文档看看
百度智能小程序需要认证费或年费吗?是认证一次就可以,还是每年认证审核一次?
百度做的东西很多的
头次见百度小程序应用
红酒的知识可是真不少呢