opencv视频显示很卡,很慢,内存泄露

jiangnanzhuzhi 2012-06-24 11:37:06
我这线程函数是显示视频,其中每一帧我调用我的videorunhs(IplImage* img,IplImage *mo)来处理,可能是内存释放不到位,引起播放是很慢,而且内存在慢慢的增长,,,请各位看看看是哪出错了
UINT CtestDlg:: videorun(LPVOID IpParamater)
{
CtestDlg *pDlg = (CtestDlg*)IpParamater;
CString filename = ((PARAMATER*)IpParamater)->path;


CvCapture *capture = NULL;
capture=cvCaptureFromAVI(filename);

int framesum = (int) cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_COUNT );
int numfrm = 0;

IplImage* frame =NULL;
IplImage * newframe= NULL;

IplImage *mo = NULL;
newframe=cvCreateImage(cvSize(frame->width, frame->height), IPL_DEPTH_8U,1);
while(numfrm < framesum)
{
numfrm ++;
frame = cvQueryFrame(capture);
mo = cvLoadImage("..\\resource\\mo.bmp",1);

newframe = cvCloneImage (frame);


pDlg->videorunhs(newframe,mo); //此处调用函数

if(cvWaitKey(1)==27||stop==0)
return 0;
Sleep(40);

}

cvReleaseCapture(&capture);

return 0;
}
void CtestDlg::videorunhs(IplImage* img,IplImage *mo)
{
if(img)
{
........
...........
............////由于太长省略处理具体过程,主要就是把img处理后全部放在mo中,这期间没有任何cvcreate和cvRelease操作


cvReleaseImage(&img);
cvReleaseImage(&mo);
}

else
{

}
}
不知是哪里出错还请,各位多多指教.....
...全文
1295 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqvbjhc 2013-03-31
  • 打赏
  • 举报
回复
从你的代码中,惟一的内存泄露就是newframe=cvCreateImage(cvSize(frame->width, frame->height), IPL_DEPTH_8U,1);这一句生成的内存没释放,但这应该不会引起内存慢慢增长的(因为它所在的函数你经常调用) 另外,按照谁申请谁释放原则,建议把videorunhs中的 cvReleaseImage(&img); cvReleaseImage(&mo); 这两句放在videorun函数中(pDlg->videorunhs(newframe,mo)之后)
fancy_sky 2013-03-31
  • 打赏
  • 举报
回复
应该是内存释放的问题,create了,,就要release,,这是原则,仔细检查下循环
傻X 2012-12-06
  • 打赏
  • 举报
回复
cvCreateImage,cvclone里面如果有new或者深拷贝,肯定是开辟内存的。
zhuyuge0 2012-12-06
  • 打赏
  • 举报
回复
至于帧率的问题,可以获取属性CV_CAP_PROP_FPS查看,还可以通过cvSetCaptureProperty 进行设置
zhuyuge0 2012-12-06
  • 打赏
  • 举报
回复
我看到了cvCreateImage,cvclone,看不到cvReleaseImage,你说怎么可能不内存泄露
清风似水流 2012-12-06
  • 打赏
  • 举报
回复
每次while一次后就cvReleaseImage。。。。。
钟球盛 2012-11-28
  • 打赏
  • 举报
回复
使用内存兼容位图来改善显示!
liuyajinggood 2012-11-25
  • 打赏
  • 举报
回复
要释放newframe ,cvcloneimage函数容易引起内存泄露,你可以查查看这个函数

19,468

社区成员

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

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