今度は顔検出をやってみました。
OpenCvSharpのサンプルコードをベースにちょっと書き換えただけですが、意外とシンプルなコードで書けるもんですね。
今回は程よいサンプル画像がないので、コードだけφ(..)メモメモ
staticvoid Main(string[] args) { // カスケード分類器の準備 var haarCascade = new CascadeClassifier("Data/haarcascade_frontalface_default.xml"); using (var src = new Mat("Images/2.jpg")) using (var gray = new Mat()) { var result = src.Clone(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); // 顔検出 Rect[] faces = haarCascade.DetectMultiScale( gray, 1.08, 2, HaarDetectionType.FindBiggestObject, new Size(50, 50)); // 検出した顔の位置に円を描画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); } using (new Window("result", result)) { Cv2.WaitKey(); } } }