VC 如何读取AVI视频一帧图像的灰度(即R.G.B)

zhaibolan 2009-04-07 10:14:34
我处理的是真彩色的AVI视频,使用VC中的VFW库读取AVI,如何才能得到AVI视频一帧图像的R G B灰度呢?请高手给予帮助!谢谢!
...全文
292 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
marrylayking 2011-09-27
  • 打赏
  • 举报
回复
你好,你上面提到的使用VC中的VFW库读取AVI,如何才能得到AVI视频一帧图像的R G B灰度程序可以发给我不,我现在正需要这个,真的麻烦你了!谢谢

guohaile 2010-09-27
  • 打赏
  • 举报
回复
你好,你上面提到的使用VC中的VFW库读取AVI,如何才能得到AVI视频一帧图像的R G B灰度程序可以发给我不,我现在正需要这个,真的麻烦你了!谢谢
enick 2009-05-13
  • 打赏
  • 举报
回复
看不出内存在哪泄露,不过你的这个赋初始值值memset(Roneframenumb,0x00,sizeof(Roneframenumb));
有问题;应该改为:memset(Roneframenumb,0x00,sizeof(int)*256);
zhaibolan 2009-04-27
  • 打赏
  • 举报
回复
自己来回答这个问题,这个内存使用量增加的问题,确实存在,具体原因不知,有可能是因为解压缩软件造成的。
zhaibolan 2009-04-13
  • 打赏
  • 举报
回复
上面的问题我已经知道答案,请大家看看下面的代码为什么会有内存泄露的问题?谢谢。
int Roneframenumb[256];
int Goneframenumb[256];
int Boneframenumb[256];
long i;
long lsize = sizeof(BITMAPINFOHEADER);

int j;

//hr=AVIStreamRead(pavi,mFrame,1,pData,cx*cy*3,NULL,NULL);

m_pGetFrame=AVIStreamGetFrameOpen(pavi,NULL);

pDIB=(BYTE *)AVIStreamGetFrame(m_pGetFrame,mFrame);

memset(Roneframenumb,0x00,sizeof(Roneframenumb));
memset(Goneframenumb,0x00,sizeof(Goneframenumb));
memset(Boneframenumb,0x00,sizeof(Boneframenumb));


if(pDIB!=NULL)
{

for(i=0;i<(cx*cy);i++)
{
Boneframenumb[pDIB[lsize+3*i]]++;
Goneframenumb[pDIB[lsize+3*i+1]]++;
Roneframenumb[pDIB[lsize+3*i+2]]++;
}
AVIStreamGetFrameClose(m_pGetFrame);

}
else
{
AVIStreamGetFrameClose(m_pGetFrame);

return 0;
}

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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