C# Winform调用百度接口实现人脸识别教程(附源码)

2020-05-11 13:58:18于海丽

第四步,定义人脸注册和搜索类FaceOperate

定义人脸注册和搜索类FaceOperate,里面定义两个方法分别为,注册人脸方法和搜索人脸方法。

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace AegeanHotel_management_system
{
  class FaceOperate : IDisposable
  {
    public string token { get; set; }
    /// <summary>
    /// 注册人脸
    /// </summary>
    /// <param name="face"></param>
    /// <returns></returns>
    public FaceMsg Add(FaceInfo face)
    {
      string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=" + token;
      Encoding encoding = Encoding.Default;
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
      request.Method = "post";
      request.KeepAlive = true;
      String str = JsonConvert.SerializeObject(face);
      byte[] buffer = encoding.GetBytes(str);
      request.ContentLength = buffer.Length;
      request.GetRequestStream().Write(buffer, 0, buffer.Length);
      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
      string result = reader.ReadToEnd();
      FaceMsg msg = JsonConvert.DeserializeObject<FaceMsg>(result);
      return msg;
    }
    /// <summary>
    /// 搜索人脸
    /// </summary>
    /// <param name="face"></param>
    /// <returns></returns>
    public MatchMsg FaceSearch(Face face)
    {
      string host = "https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=" + token;
      Encoding encoding = Encoding.Default;
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
      request.Method = "post";
      request.KeepAlive = true;
      String str = JsonConvert.SerializeObject(face); ;
      byte[] buffer = encoding.GetBytes(str);
      request.ContentLength = buffer.Length;
      request.GetRequestStream().Write(buffer, 0, buffer.Length);
      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
      string result = reader.ReadToEnd();
      MatchMsg msg = JsonConvert.DeserializeObject<MatchMsg>(result);
      return msg;
    }
    public void Dispose()
    {

    }
  }
}

在把类定义完成之后,我们就可以绘制我们的摄像头了videoSourcePlayer

第五步,绘制videoSourcePlayer控件,对人脸进行拍摄

现在我们是没有这个控件的,所以我们要先导包,点击我们的工具选项卡,选择NuGet包管理器,管理解决方案的NuGet程序包,安装一下的包:


然后我们就能看到videoSourcePlayer控件,把它绘制在窗体上就好了。