gpt4 book ai didi

c# - 人脸检测EmguCV

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:50 32 4
gpt4 key购买 nike

当图片中有 5 个人时,我对 picture.jpg 上给定的绿色矩形有问题。我正在使用 emguCV v2.2这是我点击并触发按钮时的代码。

Image InputImg = Image.FromFile(@"C:\img\Picture.jpg"); 
Image<Bgr,byte> ImageFrame = new Image<Bgr,byte>(new Bitmap(InputImg));

Image<Gray, byte> grayframe = ImageFrame.Convert<Gray, byte>();
var faces = grayframe.DetectHaarCascade(haar, 1.4, 4,
HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
new Size(25, 25))[0];
foreach (var face in faces)
{
ImageFrame.Draw(face.rect, new Bgr(Color.Green), 3);
}
CamImageBox.Image = ImageFrame;

我预计它会返回每张面上都带有绿色矩形的 picture.jpg。但事实并非如此。我可以知道为什么吗?这里有什么错误吗?

谢谢

最佳答案

 var faces =  grayframe.DetectHaarCascade(haar, 1.4, 4,
HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
new Size(25, 25))[0];

您正在使用 scaleFactors = 1.4minNeighbors = 4,也许您可以调整这些参数并检查结果 (scaleFactors = 1.2?)

为了证明你的 haarcascade 工作正常,你可以尝试使用网络摄像头捕获作为你的图片源吗?

Private void Form1_load(object sender, EventArgs e)
{
try
{
//capture webcam
Capture grabber = new Capture();
//test capture frame
grabber.QueryFrame();
//trigger event when application is idle
Application.Idle += new EventHandler(FrameGrabber);
}
catch
{
MessageBox.Show("Capture fail to start");
}
}

void FrameGrabber(object sender, EventArgs e)
{
Image<Bgr,byte> ImageFrame = grabber.QueryFrame().Resize(320,240,Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
Image<Gray, byte> grayframe = ImageFrame.Convert<Gray, byte>();
MCvAvgComp[] faces = grayframe.DetectHaarCascade(haar, 1.4, 4,
HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
new Size(25, 25))[0];
foreach (MCvAvgComp face in faces)
{
ImageFrame.Draw(face.rect, new Bgr(Color.Green), 3);
}
CamImageBox.Image = ImageFrame;
}

顺便说一下,grayframe.DetectHaarCascade 的返回类型是MCvAvgComp[][],因此,您的面孔类型是 MCvAvgComp[]

关于c# - 人脸检测EmguCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14124293/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com