如何从摄像头读取数据?

zpjsj2000 2004-04-05 07:27:52
请问如何才能从usb摄像头取得其数据?
...全文
345 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
captainwh 2004-04-08
  • 打赏
  • 举报
回复
用vfw采集的话, 使用capSetCallbackOnVideoStream设置回调, 那么在回调函数中就会取得一帧帧的图象数据(未压缩, 无论是否设定了视频压缩格式), 其形式是VIDEOHDR* ,
使用capSetCallbackOnWaveStream设置回调, 在音频回调中会获得压缩过的音频数据(压缩格式由你设定), 其形式是WAVEHDR*

更好的办法是使用dshow做采集, 从video capture filter传递下来的数据就是图象数据, 可以在输入Pin的 IMemInputPin::Receive中获取, 其形式是IMediaSample *
ymbymb 2004-04-07
  • 打赏
  • 举报
回复
http://www.vckbase.com/code/listcode.asp?mclsid=13&sclsid=1311
visualabc 2004-04-07
  • 打赏
  • 举报
回复
www.vctop.com






if (mb_color)
{
unsigned char * ired;
unsigned char * igreen;
unsigned char * iblue;
// 循环变量
LONG i;
LONG j;

unsigned char tem;
for (i=0,j=0;i<(long)lpVData->dwBufferLength;i=i+3,j++)
{
ired= lpVData->lpData+ i+2;
igreen = lpVData->lpData+i+1;
iblue = lpVData->lpData+ i;
tem=(unsigned char)(0.299*(*ired)+0.587*(*igreen)+0.114*(*iblue));
*ired=tem;
*igreen=tem;
*iblue=tem;
}
/*
DWORD dwsize = capGetVideoFormatSize(ghCapWnd);
BITMAPINFO * psVideoFormat = (LPBITMAPINFO) new BYTE[dwsize];
//得到格式
DWORD ret = capGetVideoFormat(ghCapWnd, psVideoFormat, dwsize);
if (ret != 0)
{
//宽度
psVideoFormat->bmiHeader.biWidth;
//高度
psVideoFormat->bmiHeader.biHeight;
//位平面数
psVideoFormat->bmiHeader.biPlanes;
//像素比特数
psVideoFormat->bmiHeader.biBitCount;
//压缩格式
psVideoFormat->bmiHeader.biCompression,(LPSTR) &(psVideoFormat->bmiHeader.biCompression);
//图像大小
psVideoFormat->bmiHeader.biSizeImage;
}
// 图像宽度
LONG lWidth;
// 图像高度
LONG lHeight;
// 获取图像宽度
lWidth = psVideoFormat->bmiHeader.biHeight;//::DIBWidth(lpDIB);
// 获取图像高度
lHeight = psVideoFormat->bmiHeader.biHeight;//::DIBHeight(lpDIB);
*/
return 1;
}
taianmonkey 2004-04-06
  • 打赏
  • 举报
回复
DXSDK\Samples\C++\DirectShow\Capture\AMCap
balloy 2004-04-05
  • 打赏
  • 举报
回复
最简单的办法也许是使用media encoder,你可以下载一个media encoder9来看看就知道了
anothervip 2004-04-05
  • 打赏
  • 举报
回复
用directShow建图。sdk中有例子。
zhangcrony 2004-04-05
  • 打赏
  • 举报
回复
Yes, use the AVCapture ActiveX!
cyczl666 2004-04-05
  • 打赏
  • 举报
回复
大部分是一样的。用一个AVCapture的控件就可以采集图像了
zhjie374 2004-04-05
  • 打赏
  • 举报
回复
要看他的驱动程序,还有接口了!
不完全一样!

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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