一、EmguCV打开相机
引用:Emgu.CV.World (3.1版本后都合成这一个)
Capture _capture=new Caputure(0); 这里面的0代表第几个相机。根据名称获取对应相机,尝试了很久都没成功。
_capture.ImageGrabbed += newframe;抓取事件,也可以用Application.Idle挂载事件,用过感觉没ImageGrabbed稳定。
_capture.Start();//开始运行相机
以下是抓取事件代码
private void newframe(object sender, EventArgs e)
{
Mat scr = new Mat();
_capture.Retrieve(scr, 0);
Image<Bgr, byte> des = scr.ToImage<Bgr, byte>();
pictureBox1.Image = des.ToBitmap();//获取到的图像传给pictureBox1.Image
}
二、AForge.Video.DirectShow打开相机
引用:AForge.Video.DirectShow、AForge.Video(直接在NuGet里搜索AForge.Video.DirectShow安装)
FilterInfoCollection _Devices = new FilterInfoCollection(FilterCategory.VideoInputDevice);//搜索所有输入设备,这里FilterCategory.VideoInputDevice是指影像输入设备。
根据选