xu2006 发表于 2009-8-19 19:24:12

有用VC编程采集视频(usb)的吗?

一直,想做一个,不知大家有搞过的没,交流一下撒,,,

deiwgah 发表于 2009-8-19 19:56:21

我也一直想做一个,我这有些资料,都是在网上找的,曾经按照网上一个程序修改过,从20+多错误改成了一个错误,但这个错误怎么也改正不了。

deiwgah 发表于 2009-8-19 20:06:56

上传资料,希望你能成功
点击此处下载 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)

dingdangCat 发表于 2009-8-19 20:29:10

我也在用VC++6.0做这类的东西,想做一个自动对焦的图像识别装置

我用的是VFW,勉强能用,但是有点占系统资源,听说DirectShow不错,楼主可以看一下

现在能够采集图像了但是对焦函数评价的算法很麻烦,控制单片机的下位机这一套推进的很慢,一直没多少起色


用vc采集视频的源码很多 楼主一下就有

dingdangCat 发表于 2009-8-19 20:37:25

用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库文件

cqsrmxxzyx 发表于 2009-8-19 20:47:00

c#很简单

dyh386 发表于 2009-8-19 20:53:29

最近,买了个便宜的usb摄像头,用着DirectShow和OPenCV.

xu2006 发表于 2009-8-28 15:41:41

todeiwgah
   dingdangCat
很感谢你们的经验以及资料的分享!

xuehui869 发表于 2009-9-2 16:18:27

用OpenCV挺简单的

xu2006 发表于 2010-1-15 17:11:33

考研结束了,回家了!继续

leoyang 发表于 2010-1-27 16:17:49

【5楼】 cqsrmxxzyx
积分:101
派别:
等级:------
来自:
c#很简单
----------------
我也是用C# 做的,嘿嘿

avrstm32 发表于 2010-2-7 09:46:02

MARK

mawenweiokok 发表于 2010-3-26 08:37:36

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);
哪位兄台帮忙解答一下

moen 发表于 2010-3-26 08:40:18

有用!

quzegang 发表于 2010-3-26 08:57:18

mark

mcu_lover 发表于 2010-3-26 09:01:30

学习

hf_fxy 发表于 2010-3-26 10:47:24

建议使用DirectShow,vfw是16位已淘汰!

sunzhaod 发表于 2010-4-8 11:13:00

mark

slowhand 发表于 2010-4-8 11:21:19

标记

avrwoo 发表于 2010-4-8 12:06:43

mark

ammcu 发表于 2010-4-8 20:42:28

如何进行自动对焦??

pisgah 发表于 2010-4-12 04:22:29

标记

shenqu2010 发表于 2010-4-12 14:30:38

mark

elsonx 发表于 2010-4-12 14:42:37

mark

xu2006 发表于 2010-4-12 22:16:44

我又回来了,忙了一年其他的,打算把这个视频采集做出来。。。


回复【16楼】hf_fxy
-----------------------------------------------------------------------

先用VFW把,做好了在说。VFW精度是不高啊。。。

w48720770 发表于 2010-6-12 22:18:39

http://d.download.csdn.net/down/2306686/shentuhongfeng

直接VC源代码
不过 有时 没有响应

luotuo55 发表于 2010-7-2 17:42:20

我真在尝试写一个摄像头驱动,不知道有没有同路人。

avrwoo 发表于 2010-7-2 19:23:07

mark,哪位高手讲下DIRECTSHOW进行图像采集的

cuso4 发表于 2010-7-5 13:49:53

mark

dgtg 发表于 2010-10-8 02:25:31

MASK~!学习~

spicegirl 发表于 2010-10-10 17:57:49

mark

dingxiao 发表于 2010-11-24 16:12:44

mark

yl604922959 发表于 2010-11-24 16:22:31

mark...

lazycat53128 发表于 2011-1-20 20:13:12

Mark!

ITOP 发表于 2011-1-20 20:18:03

MARK

avrwoo 发表于 2011-2-25 18:51:07

MARK

byin 发表于 2011-2-25 23:19:15

顶上来

osoon2008 发表于 2011-3-3 07:53:26

winusb + opencv, directshow就是一场恶梦.

gushiyi 发表于 2011-4-27 15:49:06

m

gloryzkl 发表于 2011-5-11 16:29:20

mark

wzz204 发表于 2011-7-12 16:35:55

mark!

shunjianyouleni 发表于 2012-9-23 22:07:56

               MARK!
页: [1]
查看完整版本: 有用VC编程采集视频(usb)的吗?