📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Linq;
using openCV.Net;
using openCV.Net.Haar;
namespace openCV.NetTest
{
class Program
{
const float scale = 1.3f;
const string filename = @"Cascades\haarcascade_frontalface_alt2.xml";
const string yaleDbDir = @"YaleDb";
const string pgmExt = "*.pgm";
static HaarClassifierCascade haarClassifierCascade;
static void Main(string[] args)
{
haarClassifierCascade = HaarClassifierCascade.Parse(XDocument.Load(filename));
foreach (var x in Directory.GetFiles(yaleDbDir, pgmExt))
DetectAndDraw(PGMDecoder.Parse(x));
}
static void DetectAndDraw(Bitmap image)
{
Stopwatch stopwatch = Stopwatch.StartNew();
Sequence<AvgComp> faces = FaceDetector.DetectFaces(image, haarClassifierCascade);
stopwatch.Stop();
using (Graphics g = Graphics.FromImage(image))
{
for (int i = 0; i < faces.Count; i++)
{
Rectangle r = faces.ElementAt(i).Rectangle;
g.DrawEllipse(Pens.Firebrick, r.X * scale, r.Y * scale, r.Width * scale, r.Height * scale);
}
g.Save();
}
new PictureForm(image, stopwatch.Elapsed).ShowDialog();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -