Найти лица на фото и вернуть их количество (пакет Emgu.cv)
Найти лица на фото и вернуть их количество (пакет Emgu.cv)
Лица в анфас:
Код:
public int IsFaceOnPhoto(IInputArray img) // возвращает количество лиц на фото или 0 если лица не найдены
{
if (face_anfas_classifier == null)
return 0;
UMat ugray = new UMat();
CvInvoke.CvtColor(img, ugray, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
CvInvoke.EqualizeHist(ugray, ugray);
return face_anfas_classifier.classifier.DetectMultiScale(ugray, 1.1, 10, new Size(20, 20)).Length;
}
Лица в профиль:
Код:
public int IsFaceProfileOnPhoto(IInputArray img) // возвращает количество лиц на фото или ноль если лица не найдены
{
Rectangle[] facesDetected;
using (UMat ugray = new UMat())
{
CvInvoke.CvtColor(img, ugray, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
//normalizes brightness and increases contrast of the image
CvInvoke.EqualizeHist(ugray, ugray);
//Detect the faces from the gray scale image and store the locations as rectangle
facesDetected = face_profile_classifier.classifier.DetectMultiScale(
ugray, 1.1, 10, new Size(20, 20));
}
return facesDetected != null ? facesDetected.Length : -1;
}
|