using OpenCvSharp
namespace OPenCVDemo
{
class Program
{
static void Main(string[] args)
{
// Load the cascades
var haarCascade = new CascadeClassifier("haarcascade_frontalface_default.xml")
var lbpCascade = new CascadeClassifier("lbpcascade_frontalface.xml")
// Detect faces
Mat haarResult = DetectFace(haarCascade)
Mat lbpResult = DetectFace(lbpCascade)
Cv2.ImShow("Faces by Haar", haarResult)
Cv2.ImShow("Faces by LBP", lbpResult)
Cv2.WaitKey(0)
Cv2.DestroyAllWindows()
}
static private Mat DetectFace(CascadeClassifier cascade)
{
Mat result
using (var src = new Mat("3.jpg", ImreadModes.Color))
using (var gray = new Mat())
{
result = src.Clone()
Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY)
// Detect faces
Rect[] faces = cascade.DetectMultiScale(
gray, 1.08, 2, HaarDetectionType.ScaleImage, new Size(30, 30))
// Render all detected faces
foreach (Rect face in faces)
{
var center = new Point
{
X = (int)(face.X + face.Width * 0.5),
Y = (int)(face.Y + face.Height * 0.5)
}
var axes = new Size
{
Width = (int)(face.Width * 0.5),
Height = (int)(face.Height * 0.5)
}
Cv2.Ellipse(result, center, axes, 0, 0, 360, new Scalar(255, 0, 255), 4)
}
}
return result
}
}
}

附件下载
https://download.csdn.net/download/lw112190/85289898