Emgu.CV.CvInvoke' 抛出异常 FaceDetectionAndRecognition

Emgu.CV.CvInvoke' threw an exception FaceDetectionAndRecognition

提问人:Moin Sarwar 提问时间:11/6/2023 更新时间:11/6/2023 访问量:17

问:

我在 C# 中创建了一个应用程序,当触发时,它会打开相机并检测一张脸,并在它周围放置一个正方形。当我在调试模式下运行此应用程序时,它可以正常工作。但是,当我构建发布版本时,它会引发异常。

using Emgu.CV;
using Emgu.CV.Structure;
using System;
using System.Drawing;
using System.Windows.Forms;

namespace FaceDetectionAndRecognition
{
    public partial class Form1 : Form
    {
        private HaarCascade faceDetected;
        private Image<Bgr, Byte> Frame;
        private Capture camera;
        private Image<Gray, byte> grayFace = null;

        public Form1()
        {
            InitializeComponent();
            faceDetected = new HaarCascade("haarcascade_frontalface_default.xml");
            camera = new Capture();
            camera.QueryFrame();
            Application.Idle += new EventHandler(FrameProcedure);
            camera.FlipHorizontal = true;

        }

        private void FrameProcedure(object sender, EventArgs e)
        {
            Frame = camera.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
            grayFace = Frame.Convert<Gray, Byte>();
            MCvAvgComp[][] facesDetectedNow = grayFace.DetectHaarCascade(faceDetected, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));

            foreach (MCvAvgComp f in facesDetectedNow[0])
            {
                Frame.Draw(f.rect, new Bgr(Color.Red), 2);
            }

            cameraBox.Size = new Size(640, 480);
            cameraBox.Image = Frame.ToBitmap();
        }
    }
}

我收到这个错误,通常称为异常。

在此处输入图像描述

谁能帮我找到这个问题的解决方案?

C C#-2.0 检测 人脸

评论

0赞 ConnieMnemonic 11/6/2023
一定要探索这个答案,我也有类似的问题。stackoverflow.com/questions/13875514/......
0赞 jdweng 11/6/2023
发布文件夹缺少 dll。在项目文件夹中查找 bin 目录。发布和调试在文件夹中应具有相同的 dll。您可以只编译调试版本,而不能编译发布版本。切勿手动将 Dll 放入 bin 文件夹中。应使用“添加现有项”并浏览到子项目调试文件夹。当您编译调试或发布版本时,dll 会复制到正确的文件夹。
0赞 jdweng 11/6/2023
@ConnieMnemonic : 您引用了 2012 年和 2014 年的链接。始终检查参考文献上的日期,以确保它们仍然是最新的。

答: 暂无答案