跪求用USB摄像头获取并保存图像的c或c++代码

superfeihu 2010-01-26 05:41:01
要求一定不要用MFC做,就是一般的MAIN()那种。
要求就是摄像头打开,然后一直开着,然后保存一帧图像为.BMP格式,然后结束就可以了……

恩,差不多就样~各位大大帮帮忙~

还有,我为什么从网上下的程序会在#include "cv.h"这句编译时,报100多个错啊?
...全文
406 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ga6840 2010-01-26
  • 打赏
  • 举报
回复
建议下dx8.0 sdk 里面dshow 有一个PlayCap 的例子
是其中最基本的 获得摄像头字节流的 例子

关键是通过 继承 ISampleGrabberCB
基类里面的成员 pBuffer 就是摄像头字节流
看到memcpy(g_capDate, pBuffer, lBufferSize);了吗?

class CSampleGrabberCB : public ISampleGrabberCB
{
public:
STDMETHODIMP_(ULONG) AddRef() { return 2; }
STDMETHODIMP_(ULONG) Release() { return 1; }
STDMETHODIMP QueryInterface(REFIID riid, void ** ppv)
{
if( riid == IID_ISampleGrabberCB || riid == IID_IUnknown )
{
*ppv = (void *) static_cast<ISampleGrabberCB*> ( this );
return NOERROR;
}
return E_NOINTERFACE;
}
STDMETHODIMP SampleCB( double SampleTime, IMediaSample * pSample )
{
return 0;
}
STDMETHODIMP BufferCB( double dblSampleTime, BYTE * pBuffer, long lBufferSize )
{

//g_dateLen=lBufferSize;
/*date = new BYTE[lBufferSize];*/
memcpy(g_capDate, pBuffer, lBufferSize);
//std::cout<<lBufferSize<<" ";
return 0;
}

};



sdk里面的例子没有问题的,不用质疑,也不用怕报错了
其实简不简单关键看你看得多不多
多看几遍 删掉一些,慢慢消化吧
z569362161 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 freezezdj 的回复:]
调用驱动提供的API函数。
应该非常简单。
[/Quote]

我也想看简单的程序。
lovesi3344 2010-01-26
  • 打赏
  • 举报
回复

帮顶

冻结 2010-01-26
  • 打赏
  • 举报
回复
调用驱动提供的API函数。
应该非常简单。
_JeffreyWu 2010-01-26
  • 打赏
  • 举报
回复
WINDOWS有API可以使用,具体GOOGLE一下

64,697

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧