如遇到“Emgu.CV.MatInvoke”的类型初始值设定项引发异常报错 ,看这里http://blog.youkuaiyun.com/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工具箱
添加完后 ,在界面编辑器的工具箱就会看到多出来了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();
}
}
}