EmguCV中的人脸检测(X64中的错误)

时间:2013-07-30 08:30:02

标签: c# opencv emgucv face-detection

我在emgucv中运行人脸检测。我使用了这段代码,但它不起作用...... 我的意思是它不会检测到蚂蚁脸并返回ZERO脸。 它让我发疯,因为我尝试了所有的东西。

我的系统是X64和Win7。 “我认为emgu代码中肯定存在错误。”

请为了上帝而帮助我!

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            HaarCascade haar = new HaarCascade("haarcascade_frontalface_alt_tree.xml");

            Image<Bgr, Byte> image = new Image<Bgr, byte>("lena.jpg");

            Image<Gray, Byte> gray = image.Convert<Gray, Byte>();     

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

            foreach (var face in faces)

                image.Draw(face, new Bgr(255, 0, 0), 3);

            MessageBox.Show(faces.Length.ToString());

            pictureBox1.Image = image.ToBitmap();

        }
    }
}

帮助,帮助...

2 个答案:

答案 0 :(得分:1)

您的代码中可能存在一些潜在问题,可能是您正在使用的xml haarcascade或DetectHaarCascade函数中的错误参数值。

我给你留下一个有效的官方例子的链接:

Emgu Face Detection Example

希望这会有所帮助......

答案 1 :(得分:0)

我不是为什么,但它发生在3台不同的电脑上。它们是X64和win7。

唯一的方法是复制emgucv\...\bin\x86 to yourproject\...\debug中的所有dll文件。

我重复将所有dll从x86文件夹(不是x64文件夹)复制到目标文件夹。

如果将它们复制到system32,它也不起作用。

我希望它可以帮到你。