首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

回调函数得到的数据不够,该如何处理

2012-02-07 
回调函数得到的数据不够C/C++ codecapSetCallbackOnFrame(m_hCameraWnd,&FrameCallbackProc)C/C++ codeLR

回调函数得到的数据不够

C/C++ code
capSetCallbackOnFrame(m_hCameraWnd,&FrameCallbackProc);


C/C++ code
LRESULT CALLBACK FrameCallbackProc(HWND ghWnd,LPVIDEOHDR lpVData){    unsigned char *data;    char s[20];    data=lpVData->lpData; //获得视频数据首地址,并将数据存入data数组中以便处理


我把位图文件头跟data写进一个新位图里,发现数据才618542个字节,不是预期的921654个字节。
打不开图,我在后面补上后0后,图片是这样的。



可能因为存储顺序的问题,图片倒了。
但是
怎么分成3份了呢? 而且高度也不是2/3整啊

这个图的原图应该是这样的:





而且图片上面还灰不溜糗的。我弄了张黑色的图试了试,结果



上面那结棍黑色的是我给图片补上去的,要不图片打不开...

哪位大神来给开开窍啊。
我不想每次都保存图片,然后再打开图片,再读入数据.这样太



太心疼计算机了。

[解决办法]
存储摄像机的我在公司也做过。 也是用回调函数,把摄像机的图像数据指针传递过来。然后显示出来或者保存。
我那个摄像机是每秒60帧,无压缩,并且在控件上显示出来。完全没问题

唯一可能的就是你的回调函数那里有问题,或者是摄像机类的底层函数上有问题,或者是BMP文件头信息弄错了?
建议跟踪下。
[解决办法]
lpVData->lpData里面的数据是不是不正确啊, 


lpData的数据是不是头+数据
另外感觉位图是24位深度,但当成8位显示了,你可以看看位图头是否设置正确了。
[解决办法]
图像位数有问题?

24位->8位?

热点排行