大家好,又见面了,我是你们的朋友全栈君。
级联分类器即为Emgucv中的 CascadeClassifier。使用 CascadeClassifier来加载一个.xml分类器文件,然后使用DetectMultiScale函数来对图片进行检测。
这是DetectMultiScale函数。
public Rectangle[] DetectMultiScale(IInputArray image, double scaleFactor = 1.1, int minNeighbors = 3, Size minSize = default(Size), Size maxSize = default(Size));
第一个参数为待检测的图片,对类型没有要求。
第二个参数为用于缩放的因子。
第三个参数为两个检测到指定物体的最小距离。
第四第五个分别为检测到物体的最小和最大尺寸。
在进行检测时,如果要求检测速度(比如通过摄像头实时检测),那就需要对后面的参数进行修改,要把缩放参数调大点火把最小尺寸调大一点。
代码非常简短
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CascadeClassifier haar = new CascadeClassifier("haarcascade_frontalface_default.xml"); //初始化分类器
Image<Bgr, byte> frame= new Image<Bgr, byte>("e9bbb8525c7da64cd78beed8b237c5e4.jpg");
Rectangle[] faces = haar.DetectMultiScale(frame, 1.3, 3, new System.Drawing.Size(40, 40)); //检测并将数据储存
foreach (Rectangle face in faces)
{
CvInvoke.Rectangle(frame, face, new Bgr(Color.Red).MCvScalar, 2); //在检测到的区域绘制红框
}
imageBox1.Image = frame;
}
}
运行效果图:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127556.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...