Compreface .Net SDK

用到的实体类:

    public class Age
    {
        /// <summary>
        /// 
        /// </summary>
        public double probability { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int high { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int low { get; set; }

    }



    public class Gender
    {
        /// <summary>
        /// 
        /// </summary>
        public double probability { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string value { get; set; }

    }



    public class Box
    {
        /// <summary>
        /// 
        /// </summary>
        public double probability { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int x_max { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int y_max { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int x_min { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int y_min { get; set; }

    }



    public class SubjectsItem
    {
        /// <summary>
        /// 刘德华
        /// </summary>
        public string subject { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public double similarity { get; set; }

    }

    public class ResultItem
    {
        /// <summary>
        /// 
        /// </summary>
        public Age age { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public Gender gender { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public Box box { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public List<SubjectsItem> subjects { get; set; }
        public Mask mask { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<List<int>> landmarks { get; set; }

    }

    public class Mask
    {
        public double probability { get; set; }
        public string value { get; set; }
    }
    public class Root
    {
        /// <summary>
        /// 
        /// </summary>
        public List<ResultItem> result { get; set; }

    }

    public class SubjectModel
    {
        public string subject { get; set; }
        public string image_id { get; set; }
    }

接口及用法:

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Net.Http.Json;

    internal class Program
    {

        static HttpClient _httpClient;

        static void Main(string[] args)
        {
            _httpClient = new HttpClient
            {
                BaseAddress = new Uri("http://localhost:8000/api/v1/"),
                Timeout = TimeSpan.FromSeconds(5),
            };
            _httpClient.DefaultRequestHeaders.Accept.Clear();
            _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            // 必须添加服务的密钥
            _httpClient.DefaultRequestHeaders.Add("x-api-key", "00000000-0000-0000-0000-000000000000");

            var bytes = File.ReadAllBytes(@"C:\Users\XXX\XXX\图片\dh.png");
            AddProjectItem("Alice", bytes);
            Console.ReadLine();
        }

        /// <summary>
        /// 添加人脸库
        /// </summary>
        private static async void AddProject(string projectName)
        {
            var result = await _httpClient.PostAsJsonAsync("recognition/subjects", new SubjectModel { subject = projectName });
            if (result.Content.Headers.ContentLength > 0)
            {
                var res = await result.Content.ReadFromJsonAsync<SubjectModel>();
            }
        }

        /// <summary>
        /// 删除人脸库
        /// </summary>
        /// <param name="projectName">人脸库名称</param>
        private static async void DeleteProject(string projectName)
        {
            var result = await _httpClient.DeleteAsync($"recognition/subjects/{projectName}");
            if (result.Content.Headers.ContentLength > 0)
            {
                var res = await result.Content.ReadFromJsonAsync<SubjectModel>();
            }
        }

        /// <summary>
        /// 删除训练图片
        /// </summary>
        /// <param name="id">训练图片Id</param>
        private static async void DeleteProjectItem(string id)
        {
            var result = await _httpClient.DeleteAsync($"recognition/faces/{id}");
            if (result.Content.Headers.ContentLength > 0)
            {
                var res = await result.Content.ReadFromJsonAsync<SubjectModel>();
            }
        }

        /// <summary>
        /// 添加训练图片
        /// </summary>
        /// <param name="projectName">人脸库名称</param>
        /// <param name="image">图片数据</param>
        private static async void AddProjectItem(string projectName, byte[] image)
        {
            var result = await _httpClient.PostAsJsonAsync($"recognition/faces?subject={projectName}", new { File = image });
            if (result.Content.Headers.ContentLength > 0)
            {
                var res = await result.Content.ReadFromJsonAsync<SubjectModel>();
            }
        }

        /// <summary>
        /// 识别
        /// </summary>
        /// <param name="bytes">图片数据</param>
        private static async void Recognition(byte[] bytes)
        {
            var result = await _httpClient.PostAsJsonAsync("recognition/recognize?face_plugins=mask", new { File = bytes });
            if (result.Content.Headers.ContentLength > 0)
            {
                var res = await result.Content.ReadFromJsonAsync<Root>();
            }
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 盛派.NET SDK是一个用于开发基于.NET框架的软件开发工具包。它提供了一套丰富的函数和类库,帮助开发人员更高效地使用.NET技术进行软件开发。 盛派.NET SDK具有以下特点和功能。首先,它支持多种编程语言,包括C#、VB.NET等,使开发人员可以根据自己的喜好和背景选择合适的语言进行开发。其次,它提供了一些常用的功能模块,如数据访问、用户界面设计、身份验证和授权等,可以大大简化开发过程,提高开发效率。 盛派.NET SDK还提供了一些高级功能,如与数据库的交互、多线程编程、网络通信等。这些功能能够满足一些特定需求,使开发人员能够更加灵活地开发出符合自己需求的软件。 另外,盛派.NET SDK还提供了丰富的文档和示例代码,帮助开发人员快速上手和使用SDK。开发人员可以通过查阅文档和参考示例代码,了解和学习SDK的各种功能和用法。 总的来说,盛派.NET SDK是一个功能强大、易用且灵活的开发工具包,可以帮助开发人员更高效地使用.NET技术进行软件开发。无论是初学者还是有经验的开发人员,都可以从盛派.NET SDK中获得很多帮助和支持。 ### 回答2: 盛派.NET SDK是一个用于开发基于.NET技术的应用程序的软件开发工具包。它提供了许多方便的功能和组件,使开发者可以更轻松地构建应用程序,并且能够与不同的互联网服务进行交互。 首先,盛派.NET SDK包含了许多常用的类和方法,使得开发者可以轻松地访问和操作数据库、文件系统、网络等资源。这些功能大大简化了开发过程,提高了开发效率。 其次,盛派.NET SDK支持与各种互联网服务进行集成和交互。例如,开发者可以使用该SDK与各大社交媒体平台进行连接,实现用户登录、分享内容等功能。同时,它还支持与第三方支付平台对接,实现在线支付的功能。 此外,盛派.NET SDK还提供了一套可视化的开发工具,使开发者可以更直观地设计和调试应用程序的界面。这些工具提供了丰富的控件和布局选项,让开发者能够快速创建用户友好的界面。 最后,盛派.NET SDK还包含了一系列的文档和示例代码,帮助开发者了解和使用SDK的各种功能。这些文档详细介绍了各个类和方法的用法,示例代码则展示了如何使用SDK实现各种功能。开发者可以通过参考这些资料,快速上手并解决遇到的问题。 总而言之,盛派.NET SDK是一个功能强大、易用性高的软件开发工具包,可以帮助开发者快速构建.NET应用程序,并与各种互联网服务进行交互。无论是初学者还是有经验的开发者,都能够从中获得便利和效率的提升。 ### 回答3: 盛派 .NET SDK 是一个为开发者提供的软件开发工具包,用于帮助开发者在 .NET 平台上快速、高效地开发应用程序。通过使用盛派 .NET SDK,开发者可以轻松地在自己的应用程序中集成盛派的功能和服务。这个 SDK 提供了一系列的 API 接口,开发者可以使用这些接口来调用盛派的各种功能,如用户身份验证、数据上传、推送通知等。 盛派 .NET SDK 的特点之一是其易用性和灵活性。开发者只需简单地引用 SDK 的库文件,并在他们的代码中使用相应的 API 接口,就可以快速集成盛派的功能。开发者可以根据自己的需求选择合适的功能和服务,以及相应的 API 接口。盛派 .NET SDK 还提供了丰富的文档和示例代码,来帮助开发者更好地理解和使用 SDK。 此外,盛派 .NET SDK 还具有高性能和稳定性。盛派团队经过不断的优化和测试,确保 SDK 在不同的环境和场景下都能提供稳定可靠的性能。开发者可以放心地将盛派的功能集成到自己的应用程序中,确保用户能够得到良好的体验。同时,盛派 .NET SDK 也支持跨平台开发,开发者可以轻松地在不同的 Windows 系统上使用相同的 SDK 进行开发。 总之,盛派 .NET SDK 是一个功能丰富、易用、高性能和稳定的软件开发工具包。它可以帮助开发者在 .NET 平台上快速开发应用程序,集成盛派的各种功能和服务,为用户提供更好的应用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值