我为简单的相机捕获图像编写代码。但应用程序和相机没有连接,并显示一个未处理的错误

时间:2013-10-08 07:18:19

标签: c# emgucv

我是emgu cv c#的新手。我想创建一个摄像头,仅用于从我的笔记本电脑摄像头和连接到我的笔记本电脑的其他摄像头设备进行简单的摄像。我不希望视频捕获只有简单的照片捕获。只需一个启动和一个捕获按钮。并将保存在特定位置。是值得的。

namespace camera
{
public partial class cameracaps : Form
{
    Capture capturecam=null;
    bool capturingprocess=false;
    Image<Bgr,Byte>imgOrg;
    Image<Gray,Byte>imgproc;



    public cameracaps()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        try
        {

            Capture cam = new Capture();

        }
        catch (NullReferenceException exception)
        {
            MessageBox.Show(exception.Message);
            return;
        }
        Application.Idle += new EventHandler(processFunction);
        capturingprocess=true;

    }
    void processFunction(object sender,EventArgs e)
    {
       imgOrg=capturecam.QueryFrame();
        if(imgOrg ==null)return;
        imgproc=imgOrg.InRange(new Bgr(50,50,50),new Bgr(250,250,250));
        imgproc = imgproc.SmoothGaussian(9);
        original.Image=imgOrg;
        processed.Image=imgproc;
    }


    private void Button1_Click(object sender, EventArgs e)
    {
        if(capturingprocess==true)
        {
            Application.Idle-=processFunction;
            capturingprocess = false;
            Button1.Text="play";
        }
        else
        {
            Application.Idle+= processFunction;
            capturingprocess= true;
            Button1.Text="pause";


    }


}

}
}

显示''Emgu.CV.CvInvoke'的类型初始值设定项引发异常。错误...表示 Capture cam = new Capture();中的错误 帮助我。

1 个答案:

答案 0 :(得分:0)

这是我们在emgu cv中几乎所有时间都面临的最大问题之一。首先将dll文件名opencv_core290.dll,open_cvhighgui290.dll复制到你的项目bin,尝试使用依赖跟踪器来处理dll文件。安装依赖项从这个链接 - http://www.emgu.com/wiki/index.php/Download_And_Installation..If它不起作用然后您应该了解应用程序正在与相机连接。然后转到我的电脑 - >右键单击 - >属性 - >高级系统设置 - >系统属性 - &gt; advance-&gt;环境变量 - &gt;系统变量 - &gt;路径 - &gt;编辑 - &gt;并粘贴C:\ Emgu \ emgucv-windows-universal-cuda 2.9.0.1922 \ bin.and按ok.restart你的系统,它会工作。