捕获摄像头视频VC

核心代码如下:

HWND hVideoWnd = capCreateCaptureWindow(NULL,WS_POPUP,0,0,200,300,hWnd,0); //创建摄像头视频窗口
if (capDriverConnect(hVideoWnd,0))  //连接驱动程序
{
    ::SetParent(hVideoWnd,hWnd);      //设置父窗口
    ::SetWindowLong(hVideoWnd,GWL_STYLE,WS_CHILD);
    ::SetWindowPos(hVideoWnd,NULL,10,10,300, 300, SWP_NOZORDER);
    ::ShowWindow(hVideoWnd,SW_SHOW);
    capPreviewRate(hVideoWnd,30); //设置预览速率
    capPreview(hVideoWnd,true); //开始预览
}
return TRUE; 

其中HWnd 为你要显示摄像头视频的窗口句柄。

 

  另外有人也可以启一个线程创建摄像头视频窗口,当子线程创建完视频窗口后,在主线程连接驱动捕获视频。这里需要注意的地方是因为在子线程创建窗口,所以子窗口的消息必然会被子线程接收。所以子线程必须有消息处理函数否则不能捕获视频。

 

还有一种捕获视频的方式是通过directshow 来采集摄像头图片。 这里不在详细论述可见博客

http://blog.csdn.net/chenyujing1234/article/details/7599048

 

posted @ 2013-09-05 15:26  皁仩腄覺  阅读(299)  评论(0编辑  收藏  举报