有用VC编程采集视频(usb)的吗?
一直,想做一个,不知大家有搞过的没,交流一下撒,,, 我也一直想做一个,我这有些资料,都是在网上找的,曾经按照网上一个程序修改过,从20+多错误改成了一个错误,但这个错误怎么也改正不了。 上传资料,希望你能成功点击此处下载 ourdev_472681.rar(文件大小:3.94M) (原文件名:vedio for windows.rar)
点击此处下载 ourdev_472682.mht(文件大小:657K) (原文件名:2_2 VFW视频采集方案 - 《Visual C++视频技术方案宝典(1CD)》- book_csdn_net.mht)
点击此处下载 ourdev_472683.mht(文件大小:1.00M) (原文件名:2_3 DirectShow视频采集方案 - 《Visual C++视频技术方案宝典(1CD)》 - 免费试读 - book_csdn_net.mht)
点击此处下载 ourdev_472684.mht(文件大小:1K) (原文件名:VC++ 6_0实现视频捕捉(VFW) - 天堂有情的日志 - 网易博客.mht)
点击此处下载 ourdev_472685.doc(文件大小:542K) (原文件名:vfw教程.doc)
点击此处下载 ourdev_472686.pdf(文件大小:1.06M) (原文件名:VFW教程.pdf)
这是vb的程序,可以直接用ourdev_472687.rar(文件大小:11K) (原文件名:VB摄像头编程.rar) 我也在用VC++6.0做这类的东西,想做一个自动对焦的图像识别装置
我用的是VFW,勉强能用,但是有点占系统资源,听说DirectShow不错,楼主可以看一下
现在能够采集图像了但是对焦函数评价的算法很麻烦,控制单片机的下位机这一套推进的很慢,一直没多少起色
用vc采集视频的源码很多 楼主一下就有 用Video For Window 最简单
1、用Visual C ++的AppWizard 生成一个基于对话框的应用程序,并在SrdAfx.h 中加入以下内容:
#include < vfw.h >
#pragma comment(lib,"vfw32.lib")
2、修改对话框资源,添加静态控制IDC_VIDEO 和按钮“捕捉”、“停止”、“设置格式”、“设置图像源”、“设置压缩”、“单帧捕获”、“定帧”、“退出”。
3、在对话框的头文件中加入以下说明。
HWND m_hCapWnd;// 预示窗口
BOOL m_bInit;// 捕捉器初始化
CAPDRIVERCAPS m_CapDrvCap;// CAP
DRIVERCAPS 结构,定义驱动器性能
CAPSTATUS m_CapStatus;// CAPSTATUS 结构,
定义捕捉窗口当前状态
CAPTUREPARMS m_Parms;
// CAPTURE PARMS 结构,定义捕捉参数
CString m_CapFileName;// 捕捉文件名称
4、在对话框类的OnInitDialog() 函数中加入捕捉器初始化以及连接驱动器。
m_bInit=FALSE;
CWnd *pWnd=AfxGetMainWnd() ->GetDlgItem
(IDC_VIDEO); // 得到预示窗口指针
CRect rect;
pWnd ->GetWindowRect( &rect); // 得到窗口大小
m_hCapWnd=capCreateCaptureWindow
((LPTSTR)TEXT("视频捕捉测试程序"),
WS_CHILD|WS_VISIBLE|WS_EX_CLIENTEDGE|
WS_EX_DLGMODALFRAME,0,0,rect.Width(),rect.Width(),
pWnd ->GetSafeHwnd(),0); // 设置预示窗口
ASSERT(m_hCapWnd);
if(capDriverConnect(m_hCapWnd,0)){
// 连接第0 号驱动器
m_bInit=TRUE;
// 得到驱动器的性能
capDriverGetCaps(m_hCapWnd,sizeof
(CAPDRIVE RCAPS), &m_CapDrvCap);
if(m_CapDrvCap.fCaptureInitialized){
// 如果初始化成功
capGetStatus(m_hCapWnd, &m_CapStatus,sizeof
(m_CapStatus)); // 得到驱动器状态
capPreviewRate(m_hCapWnd,30); // 设置预示帧频
capPreview(m_hCapWnd,TRUE); // 设置预示方式
}
else{// 初始化未成功
AfxMessageBox("视频捕捉卡初始化失败!");
AfxGetMainWnd() ->PostMessage
(WM_CLOSE);
}
}
else{// 未能连接到驱动器
AfxMessageBox
("与视频捕捉卡连接失败!");
AfxGetMainWnd() ->PostMessage
(WM_CLOSE);
}
m_CapFileName="c:\\Capture.avi";// 设置捕获文件
capFileSetCaptureFile(m_hCapWnd,m_CapFile
Name.GetBuffer(255));
5、在对话框类中加入响应“设置格式”消息的函数OnFormat()。
capDlgVideoFormat(m_hCapWnd);
// 设置格式对话框
6、在对话框类中加入响应“设置图像源”消息的函数OnSource()。
capDlgVideoSource(m_hCapWnd);
// 设置图像源对话框
7、在对话框类中加入响应“设置压缩”消息的函数OnCompress()。
capDlgVideoCompression(m_hCapWnd);
// 设置压缩对话框
8、在对话框类中加入响应“捕捉”消息的函数OnCapture()。
capCaptureGetSetup(m_hCapWnd,
&m_Parms,sizeof(m_Parms));// 得到设置参数
if(capCaptureSetSetup(m_hCapWnd,
&m_Parms,sizeof(m_Parms))==TRUE){
BOOL suc=TRUE;
suc=capCaptureSequence(m_hCapWnd); // 捕捉到文件
return suc};
else
return FALSE;
9、在对话框类中加入响应“定帧”消息的函数OnFreezed()。
capPreview(m_hCapWnd,FALSE);// 定帧
10、在对话框类中加入响应“单帧捕获”消息的函数OnImage()。
capGrabFrameNoStop(m_hCapWnd);
// 截获当前图像
capEditCopy(m_hCapWnd);
// 将图像拷贝到剪贴板
11、在对话框类中加入响应“停止”消息的函数OnStop()。
capCaptureStop(m_hCapWnd);// 停止捕捉
12、退出前断开捕捉器与驱动器的连接。
capDriverDisconnect(m_hCapWnd);
=========================================
用以上第10步,可以把图像拷贝到剪贴板,然后保存就行了,呵呵。
摘自CSDN 我用过没得问题就是码率太大了点
用的vfw需要包含vfw头文件和vfw32库文件 c#很简单 最近,买了个便宜的usb摄像头,用着DirectShow和OPenCV. todeiwgah
dingdangCat
很感谢你们的经验以及资料的分享! 用OpenCV挺简单的 考研结束了,回家了!继续 【5楼】 cqsrmxxzyx
积分:101
派别:
等级:------
来自:
c#很简单
----------------
我也是用C# 做的,嘿嘿 MARK 4楼的源代码我运行过,但有问题啊????
c:\program files\microsoft visual studio\vc98\include\vfw.h(67) : error C2146: syntax error : missing ';' before identifier 'FAR'
c:\program files\microsoft visual studio\vc98\include\vfw.h(67) : error C2501: 'DWORD' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\vfw.h(67) : fatal error C1004: unexpected end of file found
vfw.h(67):DWORD FAR PASCAL VideoForWindowsVersion(void);
哪位兄台帮忙解答一下 有用! mark 学习 建议使用DirectShow,vfw是16位已淘汰! mark 标记 mark 如何进行自动对焦?? 标记 mark mark 我又回来了,忙了一年其他的,打算把这个视频采集做出来。。。
回复【16楼】hf_fxy
-----------------------------------------------------------------------
先用VFW把,做好了在说。VFW精度是不高啊。。。 http://d.download.csdn.net/down/2306686/shentuhongfeng
直接VC源代码
不过 有时 没有响应 我真在尝试写一个摄像头驱动,不知道有没有同路人。 mark,哪位高手讲下DIRECTSHOW进行图像采集的 mark MASK~!学习~ mark mark mark... Mark! MARK MARK 顶上来 winusb + opencv, directshow就是一场恶梦. m mark mark! MARK!
页:
[1]