EmguCV打开相机但不查看ImageBox中的帧

时间:2015-07-30 18:42:15

标签: c# opencv emgucv

我试图在Windows x64Bit上使用openCV创建一个简单的c#相机应用程序。

为此,我将cvextern.dllEmgu.CV.dllEmgu.CV.UI.dllEmgu.Util.dll和所有opencv_*.dll文件复制到解决方案的调试文件夹中。
我将文件Emgu.CV.dllEmgu.CV.UI.dllEmgu.Util.dll添加为参考文件。

CameraCapture表单中,当我点击按钮btnStart时,相机框架将显示在图像框CamImageBox中。

这是我的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.Util;

namespace CameraCapture
{
    public partial class CameraCapture : Form
    {
        private Capture capture;
        private bool captureInProgress;

        public CameraCapture()
        {
            InitializeComponent();
        }
        private void ProcessFrame(object sender, EventArgs arg)
        {
            Image<Bgr, Byte> ImageFrame = capture.QueryFrame();
            CamImageBox.Image = ImageFrame;
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            #region if capture is not created, create it now
            if (capture == null)
            {
                try
                {
                    capture = new Capture();
                }
                catch (NullReferenceException excpt)
                {
                    MessageBox.Show(excpt.Message);
                }
            }
            #endregion

            if (capture != null)
            {
                if (captureInProgress)
                {  

                    btnStart.Text = "Start!"; //
                    Application.Idle -= ProcessFrame;
                }
                else
                {
                    btnStart.Text = "Stop";
                    Application.Idle += ProcessFrame;
                }

                captureInProgress = !captureInProgress;
            }
        }

        private void ReleaseData()
        {
            if (capture != null)
                capture.Dispose();
        }
    }
}

此代码在构建项目时不会显示任何错误。问题是,当我运行项目并按下按钮btnStart时,图像框CamImageBox中不会显示任何内容。

代码显示我没有错误。相机工作正常。当我运行项目时我的相机的灯开启&#34;当我运行项目时相机开始工作&#34;但是我没有收到Imagebox中的任何图片。

我是否遗漏了文件,项目移民?

1 个答案:

答案 0 :(得分:2)

到'使用'添加'Using.Emgu.CV.UI'..只需尝试