Directshow捕捉摄像头视频的类CameraCapture(SDK)
CameraCapture类有5个方法,一个事件。
方法
CameraCapture
|
构造器
|
GetCaptureDevices(静态)
|
获取视频捕捉设备集合
|
GetIBaseFilter(静态)
|
从字串获取Filter
|
Start
|
开始捕捉
|
Stop
|
停止捕捉
|
事件
NewFrame
|
捕捉到一帧触发,可处理参数传回的Image对象
|
相关的类有Grabber继承ISampleGrabberCB接口。其成员如下图。
相关的代理有OnNewFrameEventHandler,这是NewFrame事件处理代理。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/huangruijie/d3b9eee493b742f59b83499576a174b7.png)
![](https://p-blog.csdn.net/images/p_blog_csdn_net/huangruijie/31828a46065547bc8adb6bc2e789dd43.png)
![](https://p-blog.csdn.net/images/p_blog_csdn_net/huangruijie/978bf51eaa884bd78d1d5d059ef86bfb.png)
使用方法:
Graphics g;
CameraCapture camera;
private void Form1_Load(object sender, EventArgs e)
{
// pictureBox1
为一个PictureBox控件
g = Graphics.FromHwnd(pictureBox1.Handle);
camera = new CameraCapture(CameraCapture.GetCaptureDevices()[0].MonikerString);
camera.NewFrame += new OnNewFrameEventHandler(OnNewFrame);
camera.Start();
}
// new frame
protected void OnNewFrame(Bitmap image)
{
g.DrawImage(image, 0, 0);
}
代码执行后就可以看到,pictureBox1上回放摄像头.