EmguCV的配置和获取摄像头画面

如遇到“Emgu.CV.MatInvoke”的类型初始值设定项引发异常报错 ,看这里http://blog.csdn.net/qq_22033759/article/details/47285653。

我用的是emgucv3.0.0版本,网上有好多教程是2.4的版本的,有一部分已经不再适用,3.0.0版本比之前的要方便得多。

先是添加引用,库文件所在目录为emgucv安装文件夹内的bin文件夹,引用Emgu.CV.dll、Emgu.CV.ML.dll、Emgu.CV.UI.dll、Emgu.Util.dll、ZedGraph.dll这5个dll文件。

然后看图,添加winfrom工具箱

EmguCV的配置和获取摄像头画面_第1张图片EmguCV的配置和获取摄像头画面_第2张图片EmguCV的配置和获取摄像头画面_第3张图片

添加完后 ,在界面编辑器的工具箱就会看到多出来了HistogramBox、ImageBox、MatrixBox、PanAndZoomPictureBox四项。

把一个ImageBox拖入from中,并调整大小。

代码很简单,直接附上代码和注释吧

using System;
using System.Windows;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Microsoft.Kinect;
using Emgu.CV.Face;

namespace EmguCV_winform
{
    public partial class Form1 : Form
    {
        Capture capture = null;
        public Form1()
        {
            CvInvoke.UseOpenCL = false;   //不使用OpneCL
            InitializeComponent();
            capture = new Capture();      //初始化摄像头
            capture.ImageGrabbed += Capture_ImageGrabbed;   //获取帧   
            capture.Start();     //开启摄像头
        }

        private void Capture_ImageGrabbed(object sender, EventArgs e)
        {
            Mat frame = new Mat();
            capture.Retrieve(frame, 0);    //接收数据
            imageBox1.Image = frame;       //显示图像
            frame.Dispose();
        }

    }
}


你可能感兴趣的:(EmguCV)