Получить массив прямоугольников, обводящих лица на изображении (пакет Emgu.CV)
Код:
public Rectangle[] GetRectanglesForFaces(Image<Gray, byte> src)
{
if (src == null)
return null;
Rectangle[] r = new Rectangle[1];
try
{
r = face_anfas_classifier.classifier.DetectMultiScale(src, 1.1, 10, new Size(20, 20));
}
catch
{
}
return r;
}
Admin добавил 23.09.2023 в 06:59
Наложить на лица прямоугольники (серая картинка)
Код:
public Image<Gray, byte> GetRectangledImageGray(Image<Gray, byte> src, double gray_intensity = 500, int rect_width = 5)
{
Image<Gray, byte> ret = src;
Rectangle[] recs = GetRectanglesForFaces(src);
foreach (var rec in recs)
src.Draw(rec, new Gray(gray_intensity), rect_width);
return ret;
}
Наложить на лица прямоугольники (цветная картинка)
Код:
public Image<Rgb, byte> GetRectangledImageColor(Image<Rgb, byte> src, Color col, int rect_width = 5)
{
Image<Rgb, byte> ret = src;
Image<Gray, byte> tmp = ConvertToGray(src);
Rectangle[] recs = GetRectanglesForFaces(tmp);
foreach (var rec in recs)
src.Draw(rec, new Rgb(col), rect_width);
return ret;
}