void RunDetectFace() { try { //Read the files as an 8-bit Bgr image NSImage nsImage = NSImage.ImageNamed("lena.jpg"); UMat image = nsImage.ToUMat(); //UMat version //image = new Mat("lena.jpg", ImreadModes.Color); //CPU version long detectionTime; List <Rectangle> faces = new List <Rectangle>(); List <Rectangle> eyes = new List <Rectangle>(); FaceDetection.DetectFace.Detect( image, "haarcascade_frontalface_default.xml", "haarcascade_eye.xml", faces, eyes, out detectionTime); foreach (Rectangle face in faces) { CvInvoke.Rectangle(image, face, new Bgr(Color.Red).MCvScalar, 2); } foreach (Rectangle eye in eyes) { CvInvoke.Rectangle(image, eye, new Bgr(Color.Blue).MCvScalar, 2); } mainImageView.Image = image.ToNSImage(); } catch (Exception e) { InvokeOnMainThread(() => { messageLabel.StringValue = e.Message; messageLabel.InvalidateIntrinsicContentSize(); }); } }
void RunDetectFace() { try { //Read the files as an 8-bit Bgr image NSImage nsImage = NSImage.ImageNamed("lena.jpg"); UMat image = nsImage.ToUMat(); //UMat version long detectionTime; List <Rectangle> faces = new List <Rectangle>(); List <Rectangle> eyes = new List <Rectangle>(); using (CascadeClassifier faceCascadeClassifier = new CascadeClassifier("haarcascade_frontalface_default.xml")) using (CascadeClassifier eyeCascadeClassifier = new CascadeClassifier("haarcascade_eye.xml")) FaceDetection.DetectFace.Detect( image, faceCascadeClassifier, eyeCascadeClassifier, faces, eyes, out detectionTime); foreach (Rectangle face in faces) { CvInvoke.Rectangle(image, face, new MCvScalar(0, 0, 255), 2); } foreach (Rectangle eye in eyes) { CvInvoke.Rectangle(image, eye, new MCvScalar(255, 0, 0), 2); } mainImageView.Image = image.ToNSImage(); } catch (Exception e) { InvokeOnMainThread(() => { messageLabel.StringValue = e.Message; messageLabel.InvalidateIntrinsicContentSize(); }); } }