public static void DrawPointsOfLandmarks(FileInfo image) { using (var fd = Dlib.GetFrontalFaceDetector()) using (var sp = ShapePredictor.Deserialize(GetFile(ShapePredictorFileName).FullName)) { using (var img = Dlib.LoadImage <RgbPixel>(image.FullName)) { var faces = fd.Operator(img); // for each face draw over the facial landmarks foreach (var face in faces) { var shape = sp.Detect(img, face); // draw the landmark points on the image for (var i = 0; i < shape.Parts; i++) { var point = shape.GetPart((uint)i); var rect = new Rectangle(point); if (i == 0) { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 255, 255), thickness: 8); } else if (i == 21 || i == 22 || i == 39 || i == 42 || i == 33 || i == 51 || i == 57 || i == 48 || i == 54) { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 0, 255), thickness: 4); } else if (i == 18 || i == 19 || i == 20 || i == 21) // left eye { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 0, 0), 6); } else if (i == 22 || i == 23 || i == 24 || i == 25) // right eye { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 128, 0), 6); } else if (i == 48 || i == 49 || i == 50) // left lip { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 255, 0), 2); } else if (i == 52 || i == 53 || i == 54) // right lip { Dlib.DrawRectangle(img, rect, color: new RgbPixel(255, 0, 128), 2); } else { Dlib.DrawRectangle(img, rect, color: new RgbPixel(0, 0, 0), thickness: 4); } } Dlib.SavePng(img, "output.jpg"); } } } }