一个简单的摄像头视频浏览和捕获的程序
2006-02-22 14:45
483 查看
新建一个基于对话框的工程,引用头文件<vfw.h> ,导入 vfw32.lib 库,库文件可以在vc存在路径中找到;
如:D:/Program Files/Microsoft Visual Studio/VC98/Lib/vfw32.lib
作者Blog:http://blog.csdn.net/simaowufen/
在窗体上添加四个个按钮,修改ID为IDC_VIDEO , IDC_CAPTURE , IDC_STOPVIDEO , IDC_STOPCAPTURE;
为按钮IDC_VIDEO添加代码开始浏览视频:
{
//create a window for captureWindow
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
mywnd->ShowWindow(SW_SHOW);
CRect rect;
mywnd->GetWindowRect(rect);
//create capture window
ghCapWnd=capCreateCaptureWindow( "My Own Capture Window",WS_CHILD | WS_VISIBLE ,0, 0, (rect.right-rect.left), (rect.bottom-rect.top), mywnd->GetSafeHwnd(), 1235);
//connect device
capDriverConnect (ghCapWnd, 0);
//get params
CAPTUREPARMS CapParms;
capCaptureGetSetup(ghCapWnd,&CapParms,sizeof (CAPTUREPARMS))
//设置桢速
CapParms.dwRequestMicroSecPerFrame=40000;
//有无时间限制
CapParms.fLimitEnabled = FALSE;
//是否捕捉音频
CapParms.fCaptureAudio = FALSE;
//MCI Device支持
CapParms.fMCIControl = FALSE;
//设置窗口,如果为false,捕捉画面在桌面上
CapParms.fYield = TRUE;
//停止捕捉键设置
CapParms.vKeyAbort = VK_ESCAPE;
CapParms.fAbortLeftMouse = FALSE;
CapParms.fAbortRightMouse = FALSE;
capCaptureSetSetup(ghCapWnd,&CapParms,sizeof (CAPTUREPARMS));
//设置预览时的比例
capPreviewScale(ghCapWnd, 1);
//设置预览时的帧频率
capPreviewRate(ghCapWnd,66);
//是否支持比例变化
capPreviewScale(ghCapWnd,FALSE);
//打开预览
capPreview(ghCapWnd, 1);
}
为IDC_CAPTURE添加代码开始捕获视频:
{
capCaptureSequence(ghCapWnd);
}
为IDC_STOPCAPTURE添加代码停止捕捉:
{
capCaptureAbort(ghCapWnd);
}
为IDC_STOPVIDEO添加代码断开连接:
{
capDriverDisconnect(ghCapWnd);
}
此程序只是简单的显示和捕捉视频, 旨在给那些像我一样搜到很多资料但又没有找到入口点的菜鸟一个入口,至于更高深的内容还有待各位大侠不吝赐教.
如:D:/Program Files/Microsoft Visual Studio/VC98/Lib/vfw32.lib
作者Blog:http://blog.csdn.net/simaowufen/
在窗体上添加四个个按钮,修改ID为IDC_VIDEO , IDC_CAPTURE , IDC_STOPVIDEO , IDC_STOPCAPTURE;
为按钮IDC_VIDEO添加代码开始浏览视频:
{
//create a window for captureWindow
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
mywnd->ShowWindow(SW_SHOW);
CRect rect;
mywnd->GetWindowRect(rect);
//create capture window
ghCapWnd=capCreateCaptureWindow( "My Own Capture Window",WS_CHILD | WS_VISIBLE ,0, 0, (rect.right-rect.left), (rect.bottom-rect.top), mywnd->GetSafeHwnd(), 1235);
//connect device
capDriverConnect (ghCapWnd, 0);
//get params
CAPTUREPARMS CapParms;
capCaptureGetSetup(ghCapWnd,&CapParms,sizeof (CAPTUREPARMS))
//设置桢速
CapParms.dwRequestMicroSecPerFrame=40000;
//有无时间限制
CapParms.fLimitEnabled = FALSE;
//是否捕捉音频
CapParms.fCaptureAudio = FALSE;
//MCI Device支持
CapParms.fMCIControl = FALSE;
//设置窗口,如果为false,捕捉画面在桌面上
CapParms.fYield = TRUE;
//停止捕捉键设置
CapParms.vKeyAbort = VK_ESCAPE;
CapParms.fAbortLeftMouse = FALSE;
CapParms.fAbortRightMouse = FALSE;
capCaptureSetSetup(ghCapWnd,&CapParms,sizeof (CAPTUREPARMS));
//设置预览时的比例
capPreviewScale(ghCapWnd, 1);
//设置预览时的帧频率
capPreviewRate(ghCapWnd,66);
//是否支持比例变化
capPreviewScale(ghCapWnd,FALSE);
//打开预览
capPreview(ghCapWnd, 1);
}
为IDC_CAPTURE添加代码开始捕获视频:
{
capCaptureSequence(ghCapWnd);
}
为IDC_STOPCAPTURE添加代码停止捕捉:
{
capCaptureAbort(ghCapWnd);
}
为IDC_STOPVIDEO添加代码断开连接:
{
capDriverDisconnect(ghCapWnd);
}
此程序只是简单的显示和捕捉视频, 旨在给那些像我一样搜到很多资料但又没有找到入口点的菜鸟一个入口,至于更高深的内容还有待各位大侠不吝赐教.
相关文章推荐
- 一个简单的摄像头视频浏览和捕获的程序(转载)
- 一个简单的摄像头视频浏览和捕获的程序
- 简单的摄像头视频浏览和捕获程序
- 简单的摄像头视频浏览和捕获程序
- 简单的摄像头视频浏览和捕获程序
- 用 OpenCV 编写一个简单的摄像头视频监控程序
- 用 OpenCV 编写一个简单的摄像头视频监控程序
- 基于vfw的摄像头视频浏览和捕获的程序
- [ios专项]一个简单的浏览网页程序-object c
- Directshow学习笔记五-----一个简单的视频播放程序(个人学习总结,仅供参考)
- 一个简单的Opencv视频程序
- 安卓--一个简单的SD卡文件浏览程序
- 一个显示地图数据,并实现简单浏览查询程序源码(SDK编写)
- 一个简单的播放视频的小程序
- opencv实践程序3——打开摄像头视频及轮廓检测的简单程序
- 根据牛腩老师的mono for android 视频,用xamarin for android 写的一个简单程序范例
- 一个简单的播放视频的小程序
- 一个简单的 android 图片浏览程序
- VFW实例程序。简单 “视频捕获”,没有压缩、线程、保存、等更多的功能
- 20060507: 视频教程:写一个简单“Hello, world”的Java程序