Esta pregunta se puede solucionar de diferentes maneras, pero nosotros te damos la respuesta más completa en nuestra opinión.
Puede usar la clase HaarCascade en EmguCV (puerto DotNet de OpenCV) http://www.emgu.com/wiki/index.php/Face_detection
Notas para ejecutar este ejemplo:
- Crear una aplicación de formulario de Windows
- Agregue un PictureBox y un temporizador (y actívelo): ejecútelo en un sistema x86
- Asegúrese de tener los dlls relevantes de OpenCV (incluidos con la descarga de Emgu CV) en la carpeta donde se ejecuta el código.
- Ajuste la ruta para encontrar el xml de Haarcascade (última línea del código)
using System;
using System.Windows.Forms;
using System.Drawing;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
namespace opencvtut
public partial class Form1 : Form
private Capture cap;
private HaarCascade haar;
public Form1()
InitializeComponent();
private void timer1_Tick(object sender, EventArgs e)
using (Image nextFrame = cap.QueryFrame())
if (nextFrame != null)
// there's only one channel (greyscale), hence the zero index
//var faces = nextFrame.DetectHaarCascade(haar)[0];
Image grayframe = nextFrame.Convert();
var faces =
grayframe.DetectHaarCascade(
haar, 1.4, 4,
HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
new Size(nextFrame.Width/8, nextFrame.Height/8)
)[0];
foreach (var face in faces)
nextFrame.Draw(face.rect, new Bgr(0,double.MaxValue,0), 3);
pictureBox1.Image = nextFrame.ToBitmap();
private void Form1_Load(object sender, EventArgs e)
// passing 0 gets zeroth webcam
cap = new Capture(0);
// adjust path to find your xml
haar = new HaarCascade(
"..\..\..\..\lib\haarcascade_frontalface_alt2.xml");
Si está buscando recortar su imagen, puede usar el Servicio cognitivo de Microsoft llamado Face API que delimita la cara de todas las personas en su foto, le devuelve un JSON que tiene los elementos para devolverle una estructura Rectangle, luego puede Recorta y cambia el tamaño de tu imagen como quieras.
Aquí puedes ver más información al respecto: FaceAPI
Hay un ejemplo en CodeProject, parece que sería un muy buen lugar para comenzar.
Te mostramos comentarios y valoraciones
Puedes añadir valor a nuestra información asistiendo con tu veteranía en las reseñas.