服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity实现红酒识别的示例代码

Unity实现红酒识别的示例代码

2022-12-26 13:58CoderZ1010 C#

本文主要介绍了如何通过Unity实现红酒识别,可以实现识别图像中的红酒标签,返回红酒名称、国家、产区、酒庄、类型、糖分、葡萄品种、酒品描述等信息,感兴趣的可以学习一下

接口介绍:

识别图像中的红酒标签,返回红酒名称、国家、产区、酒庄、类型、糖分、葡萄品种、酒品描述等信息,可识别数十万中外红酒;支持自定义红酒图库,在自建库中搜索特定红酒信息。

创建应用:

在产品服务中搜索图像识别,创建应用,获取AppID、APIKey、SecretKey信息:

Unity实现红酒识别的示例代码

Unity实现红酒识别的示例代码

查阅官方文档,以下是红酒识别接口返回数据参数详情:

Unity实现红酒识别的示例代码

定义数据结构:

using System;

[Serializable]
public class RedwineRecognition
{
  /// <summary>
  /// 请求标识码,随机数,唯一
  /// </summary>
  public float log_id;
  /// <summary>
  /// 识别结果
  /// </summary>
  public RedwineRecognitionResult result;
}

/// <summary>
/// 识别结果
/// </summary>
[Serializable]
public class RedwineRecognitionResult
{
  /// <summary>
  /// 判断是否返回详细信息(除红酒中文名之外的其他字段),含有返回1,不含有返回0
  /// </summary>
  public int hasdetail;
  /// <summary>
  /// 红酒中文名,无法识别返回空
  /// </summary>
  public string wineNameCn;
  /// <summary>
  /// 红酒英文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string wineNameEn;
  /// <summary>
  /// 国家中文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string countryCn;
  /// <summary>
  /// 国家英文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string countryEn;
  /// <summary>
  /// 产区中文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string regionCn;
  /// <summary>
  /// 产区英文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string regionEn;
  /// <summary>
  /// 子产区中文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string subRegionCn;
  /// <summary>
  /// 子产区英文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string subRegionEn;
  /// <summary>
  /// 酒庄中文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string wineryCn;
  /// <summary>
  /// 酒庄英文名,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string wineryEn;
  /// <summary>
  /// 酒类型,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string classifyByColor;
  /// <summary>
  /// 糖分类型,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string classifyBySugar;
  /// <summary>
  /// 色泽,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string color;
  /// <summary>
  /// 葡萄品种,可能有多种葡萄,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string grapeCn;
  /// <summary>
  /// 葡萄品种英文名,可能有多种葡萄,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string grapeEn;
  /// <summary>
  /// 品尝温度,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string tasteTemperature;
  /// <summary>
  /// 酒品描述,hasdetail = 0时,表示无法识别,该字段不返回
  /// </summary>
  public string description;
}

下载C# SDK:

Unity实现红酒识别的示例代码

下载完成后将AipSdk.dll动态库导入到Unity中:

Unity实现红酒识别的示例代码

以下是调用接口时传入的参数详情:

Unity实现红酒识别的示例代码

封装调用函数:

using System;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 图像识别
/// </summary>
public class ImageRecognition 
{
  //以下信息于百度开发者中心控制台创建应用获取
  private const string appID = "";
  private const string apiKey = "";
  private const string secretKey = "";

  /// <summary>
  /// 红酒识别
  /// </summary>
  /// <param name="bytes">图片字节数据</param>
  /// <returns></returns>
  public static RedwineRecognition Redwine(byte[] bytes)
  {
      var client = new Baidu.Aip.ImageClassify.ImageClassify(apiKey, secretKey);
      try
      {
          var response = client.Redwine(bytes);
          RedwineRecognition redwineRecognition = JsonConvert.DeserializeObject<RedwineRecognition>(response.ToString());
          return redwineRecognition;
      }
      catch (Exception error)
      {
          Debug.LogError(error);
      }
      return null;
  }
  /// <summary>
  /// 红酒识别
  /// </summary>
  /// <param name="url">图片url地址</param>
  /// <returns></returns>
  public static RedwineRecognition Redwine(string url)
  {
      var client = new Baidu.Aip.ImageClassify.ImageClassify(apiKey, secretKey);
      try
      {
          var response = client.RedwineUrl(url);
          RedwineRecognition redwineRecognition = JsonConvert.DeserializeObject<RedwineRecognition>(response.ToString());
          return redwineRecognition;
      }
      catch (Exception error)
      {
          Debug.LogError(error);
      }
      return null;
  }
}

测试图片:

Unity实现红酒识别的示例代码

using System.IO;
using UnityEngine;

public class Example : MonoBehaviour
{
  private void Start()
  {
      ImageRecognition.Redwine(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));
  }
}

Unity实现红酒识别的示例代码

到此这篇关于Unity实现红酒识别的示例代码的文章就介绍到这了,更多相关Unity红酒识别内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_42139931/article/details/122301590

延伸 · 阅读

精彩推荐
  • C#C#实现学生模块的增删改查

    C#实现学生模块的增删改查

    这篇文章主要为大家详细介绍了C#实现学生模块的增删改查,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    rikiemo5152022-12-22
  • C#C# Winform程序实现防止多开的方法总结【亲测】

    C# Winform程序实现防止多开的方法总结【亲测】

    这篇文章主要介绍了C# Winform程序实现防止多开的方法,结合实例形式总结分析了C# Winform防止多开相关操作技巧与使用注意事项,需要的朋友可以参考下...

    willingtolove9432022-08-29
  • C#C#中多态性的实现

    C#中多态性的实现

    这篇文章主要介绍了C#中多态性的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编...

    LLLLL__5722022-08-24
  • C#C#类继承中构造函数的执行序列示例详解

    C#类继承中构造函数的执行序列示例详解

    这篇文章主要给大家介绍了关于C#类继承中构造函数的执行序列的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学...

    yixuan.han5342022-02-28
  • C#VisualStudio2019安装C#环境的实现方法

    VisualStudio2019安装C#环境的实现方法

    这篇文章主要介绍了VisualStudio2019安装C#环境的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    Cauhele浅能7992022-10-25
  • C#C# 利用VS编写一个简单的网游客户端

    C# 利用VS编写一个简单的网游客户端

    本文主要介绍了在visual studio中利用C#编写一个简单的网游客户端,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    机智的橙子4952022-12-12
  • C#WPF应用启动慢的问题解决

    WPF应用启动慢的问题解决

    今天碰到一个奇怪的现象,在某些机器上,进行了系统还原后,WPF应用打开较慢,约有35s。本文先记录下该问题的解决方案,应用启动性能官方文档中有说...

    louzi6212022-11-20
  • C#Visual Studio 未能加载各种Package包的解决方案

    Visual Studio 未能加载各种Package包的解决方案

    打开Visual Studio 的时候,总提示未能加载相应的Package包,有时候还无法打开项目,各种错误提示,怎么解决呢?下面小编给大家带来了Visual Studio 未能加载...

    jianxuanbing9922021-12-08