搜索
bottom↓
回复: 41

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

[复制链接]

出0入0汤圆

发表于 2009-8-19 19:24:12 | 显示全部楼层 |阅读模式
一直,想做一个,不知大家有搞过的没,交流一下撒,,,

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-8-19 19:56:21 | 显示全部楼层
我也一直想做一个,我这有些资料,都是在网上找的,曾经按照网上一个程序修改过,从20+多错误改成了一个错误,但这个错误怎么也改正不了。

出0入0汤圆

发表于 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)

出0入0汤圆

发表于 2009-8-19 20:29:10 | 显示全部楼层
我也在用VC++6.0做这类的东西,想做一个自动对焦的图像识别装置

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

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


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

出0入0汤圆

发表于 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库文件

出0入0汤圆

发表于 2009-8-19 20:47:00 | 显示全部楼层
c#很简单

出0入0汤圆

发表于 2009-8-19 20:53:29 | 显示全部楼层
最近,买了个便宜的usb摄像头,用着DirectShow和OPenCV.

出0入0汤圆

 楼主| 发表于 2009-8-28 15:41:41 | 显示全部楼层
to  deiwgah
   dingdangCat
很感谢你们的经验以及资料的分享!

出0入0汤圆

发表于 2009-9-2 16:18:27 | 显示全部楼层
用OpenCV挺简单的

出0入0汤圆

 楼主| 发表于 2010-1-15 17:11:33 | 显示全部楼层
考研结束了,回家了!继续

出0入0汤圆

发表于 2010-1-27 16:17:49 | 显示全部楼层
【5楼】 cqsrmxxzyx
积分:101
派别:
等级:------
来自:
c#很简单
----------------
我也是用C# 做的,嘿嘿

出0入0汤圆

发表于 2010-2-7 09:46:02 | 显示全部楼层
MARK

出0入0汤圆

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

出0入0汤圆

发表于 2010-3-26 08:40:18 | 显示全部楼层
有用!

出0入0汤圆

发表于 2010-3-26 08:57:18 | 显示全部楼层
mark

出0入264汤圆

发表于 2010-3-26 09:01:30 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-3-26 10:47:24 | 显示全部楼层
建议使用DirectShow,vfw是16位已淘汰!

出0入0汤圆

发表于 2010-4-8 11:13:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 11:21:19 | 显示全部楼层
标记

出0入0汤圆

发表于 2010-4-8 12:06:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 20:42:28 | 显示全部楼层
如何进行自动对焦??

出0入0汤圆

发表于 2010-4-12 04:22:29 | 显示全部楼层
标记

出0入0汤圆

发表于 2010-4-12 14:30:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-12 14:42:37 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-4-12 22:16:44 | 显示全部楼层
我又回来了,忙了一年其他的,打算把这个视频采集做出来。。。


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

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

出0入0汤圆

发表于 2010-6-12 22:18:39 | 显示全部楼层
http://d.download.csdn.net/down/2306686/shentuhongfeng

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

出0入0汤圆

发表于 2010-7-2 17:42:20 | 显示全部楼层
我真在尝试写一个摄像头驱动,不知道有没有同路人。

出0入0汤圆

发表于 2010-7-2 19:23:07 | 显示全部楼层
mark,哪位高手讲下DIRECTSHOW进行图像采集的

出0入0汤圆

发表于 2010-7-5 13:49:53 | 显示全部楼层
mark

出10入0汤圆

发表于 2010-10-8 02:25:31 | 显示全部楼层
MASK~!学习~

出0入0汤圆

发表于 2010-10-10 17:57:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-24 16:12:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-24 16:22:31 | 显示全部楼层
mark...

出0入0汤圆

发表于 2011-1-20 20:13:12 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2011-1-20 20:18:03 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-2-25 18:51:07 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-2-25 23:19:15 | 显示全部楼层
顶上来

出0入0汤圆

发表于 2011-3-3 07:53:26 | 显示全部楼层
winusb + opencv, directshow就是一场恶梦.

出0入0汤圆

发表于 2011-4-27 15:49:06 | 显示全部楼层
m

出0入0汤圆

发表于 2011-5-11 16:29:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-12 16:35:55 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-9-23 22:07:56 | 显示全部楼层
                 MARK!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 00:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表