Поиск лица на фото (пакет Emgu.CV)
ищет на картинке face_to_find лица и кладет их выделенные прямоугольниками фото в словарь faces
Код:
public List<string> FindFace(Dictionary<Image<Gray, byte>, string> faces, Image<Gray, byte> face_to_find, double dist = 0)
{
if (dist == 0)
dist = recognition_accuracy;
List<string> ret = new List<string>();
EigenFaceRecognizer recognizer = new EigenFaceRecognizer(0, dist);
Mat[] imgs = new Mat[faces.Count];
int[] labels = new int[faces.Count];
for(int i = 0; i < faces.Count; i++)
{
imgs[i] = faces.ElementAt(i).Key.Mat;
labels[i] = i;
}
recognizer.Train(imgs, labels);
FaceRecognizer.PredictionResult res = recognizer.Predict(face_to_find);
if (res.Distance <= dist && res.Label >= labels[0] && res.Label < labels[faces.Count])
ret.Add(faces.ElementAt(res.Label).Value);
return ret;
}