微信小程序+前端+天行数据垃圾图像识别接口API

文章目录

前言

步骤

1. 去到天行数据官网注册账号,去到接口的介绍网站

2. 去测试网站,先看看请求的格式

 3. 小程序端我采用的是把网站上的url链接的网络图片转成base64编码后的形式作为传入参数,这里需要有点基础,因为只给上了js核心代码

4. 效果


前言

当时有个垃圾图像识别的需求,之前已经用百度的图像识别API(识别出垃圾的名字)+自己的后端数据库信息来识别出垃圾的信息,但是想着有没有一个API接口就能解决的办法。当时一开始是想用阿里云的垃圾分类识别接口的,但是发现传入参数ImageURL有点挑剔,图像URL地址如果是使用上海地域的OSS链接就很方便,直接用测试那边的代码就行,但是当时我是没有阿里的OSS的。后面我试了下上海地域的OSS和对于文件在本地或者非上海地域OSS链接的处理方法,然后发现应该是可以完成的,但是代码量有点大,就算放到云函数上可有点麻烦(维护的话)。所以后面还是决定使用天行数据的API,因为代码比较简短和方便,代码放在前端就能使用。

以下就进入本篇文章正文内容,下面我的例子可供参考

步骤

1. 去到天行数据官网注册账号,去到接口的介绍网站

图像垃圾分类API接口 - 天行数据TianAPI

2. 去测试网站,先看看请求的格式

 3. 小程序端我采用的是把网站上的url链接的网络图片转成base64编码后的形式作为传入参数,这里需要有点基础,因为只给上了js核心代码

var httpsimg = that.data.src_jpg   // 网络图片地址
      wx.downloadFile({     // 需要先下载 
        url: httpsimg,
        success(res) {
          console.log(res,'res') // debug
          wx.getFileSystemManager().readFile({
              filePath: res.tempFilePath, //选择图片返回的相对路径
              encoding: 'base64', //编码格式:base64 | hex(16进制)
              success: res => { //成功的回调
                var userImageBase64 = 'data:image/jpg;base64,' + res.data;
                console.log('userImageBase64'); // debug 打印base64格式图片
                
                wx.request({
                  url: 'https://apis.tianapi.com/imglajifenlei/index', //垃圾分类接口
                  method: 'POST',
                  header: {
                    'content-type': 'application/x-www-form-urlencoded'
                  },
                  data: {
                    key: '填入自己的key',
                    img: userImageBase64
                  },
                  success: function (res) {
                    if (res.data.code == 200) { //成功返回正确结果,lajitip为4表示未知类型
                      console.log(res)
                      var logoImg=""
                      var sort = res.data.result.list != 0 ? res.data.result.list[0].lajitype : 4 // 判断是不是没有数据,第一个数据是置信度最高的识别结果
                      switch (sort) {
                        case 0:
                          logoImg = "/images/RecycleableWaste.jpg"
                          break;
                        case 1:
                          logoImg = "/images/HazardouAwaste.jpg"
                          break;
                        case 2:
                          logoImg = "/images/HouseholdfoodWaste.jpg"
                          break;
                        case 3:
                          logoImg = "/images/ResidualWaste.png"
                          break;
                        case 4:
                          logoImg = "/images/unknown.jpg"
                          break;
                      }
                      console.log(logoImg)
                      that.setData({
                        logo:logoImg,
                        name:res.data.result.list[0].name,
                        isHasData:!that.data.isHasData //简单取反,表示有数据,一开始可以给false
                      })
                      

                    } else {
                      console.log("天行数据垃圾识别接口调用失败,错误码:" + res.data.code)
                    }
                  } 
                })

              }
            })
          }
        })

下面这个网站可以看看base64编码后的结果。 

图片/base64编码互转工具 - 天行数据TianAPI

4. 效果

猜你喜欢

转载自blog.csdn.net/qq_45732909/article/details/128861794