最近在利用opencv做一个视频检测模块,其中涉及到要把检测后的图像一帧帧的显示出来,形成视频流的感觉。
问题在于如果利用如下的代码进行连续的图像显示,内存泄露非常严重,不出几分钟,我的4G内存的本本就吃不消了。
原用于连续显示的代码:
int i = 0;
IplImage* img = 0;
char *image_name = "D:/project_java/VideoServer/img/1.jpg";
printf("------------- image to video ... ----------------\n");
int isColor = 1;
//创建窗口
cvNamedWindow( "Image", CV_WINDOW_AUTOSIZE );
while(1)
{
printf("%s%d%s", "image", ++i, ".jpg\n");

在使用OpenCV进行视频检测时,通过cvLoadImage显示图像导致内存泄露。改用imread和imshow函数,结合最新版OpenCV,成功解决内存泄露问题,实现了连续图像的稳定显示。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



