
第五步,调用摄像头拍摄注册人脸

然后我们就可以写控制摄像头的语句以及拍摄之后注册处理的方法了:
using AForge.Video.DirectShow;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AegeanHotel_management_system
{
public partial class FrmFacePeople : Form
{
string tocken = "";
public FrmFacePeople()
{
InitializeComponent();
Tocken tk = JsonConvert.DeserializeObject<Tocken>(AccessToken.getAccessToken());
this.tocken = tk.AccessToken;
}
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoDevice;
private void FrmFacePeople_Load(object sender, EventArgs e)
{
//获取摄像头
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
//实例化摄像头
videoDevice = new VideoCaptureDevice(videoDevices[0].MonikerString);
//将摄像头视频播放在控件中
videoSourcePlayer1.VideoSource = videoDevice;
//开启摄像头
videoSourcePlayer1.Start();
}
private void FrmFacePeople_FormClosing(object sender, FormClosingEventArgs e)
{
videoSourcePlayer1.Stop();
}
private void button1_Click(object sender, EventArgs e)
{
//拍照
Bitmap img = videoSourcePlayer1.GetCurrentVideoFrame();
//图片转Base64
string imagStr = ImagHelper.ImgToBase64String(img);
//实例化FaceInfo对象
FaceInfo faceInfo = new FaceInfo();
faceInfo.Image = imagStr;
faceInfo.ImageType = "BASE64";
faceInfo.GroupId = "admin";
faceInfo.UserId = Guid.NewGuid().ToString().Replace('-', '_');//生成一个随机的UserId 可以固定为用户的主键
faceInfo.UserInfo = "";
using (FaceOperate faceOperate = new FaceOperate())
{
faceOperate.token = tocken;
//调用注册方法注册人脸
var msg = faceOperate.Add(faceInfo);
if (msg.ErroCode == 0)
{
MessageBox.Show("添加成功");
//关闭摄像头
videoSourcePlayer1.Stop();
}
}
}
}
}
我们在添加人脸之后可以到百度只能云的人脸库中查看一下添加是否成功。

如果添加成功,那么恭喜,我们就可以进行人脸识别了。
第六步,拍摄之后对比查询人脸识别
然后我们就可以写控制摄像头的语句以及拍摄之后搜索处理的方法了:










