Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用cvCopy的内存泄漏_C++_Memory Leaks_Opencv - Fatal编程技术网

C++ 使用cvCopy的内存泄漏

C++ 使用cvCopy的内存泄漏,c++,memory-leaks,opencv,C++,Memory Leaks,Opencv,我在使用OpenCV的cvCopy函数时遇到内存泄漏问题。如果我评论那句话,一切都没问题。如果没有,则内存将上升,直到系统崩溃 我发现了这篇关于OpenCV内存泄漏的有趣文章:但如果我评论这句话: targetImage=cvCreateImage(.. 我遇到了另一个问题,因为它说我正在传递一个空指针 ..... //other code (here we are inside a loop cvSetImageROI(&tmpimag,TargetRect); targetImage

我在使用OpenCV的cvCopy函数时遇到内存泄漏问题。如果我评论那句话,一切都没问题。如果没有,则内存将上升,直到系统崩溃

我发现了这篇关于OpenCV内存泄漏的有趣文章:但如果我评论这句话:
targetImage=cvCreateImage(..

我遇到了另一个问题,因为它说我正在传递一个空指针

..... //other code (here we are inside a loop
cvSetImageROI(&tmpimag,TargetRect);
targetImage = cvCreateImage( cvSize(TargetRect.width, TargetRect.height), tmpimag.depth, tmpimag.nChannels );
cvCopy(&tmpimag,targetImage);
cvResetImageROI(&tmpimag); // release image ROI 
....//other code

根据你的一小段代码,我可以告诉你,mem泄漏可能是你的错

在循环的每次迭代中,您都会使用
cvCreateImage()
创建/分配一个新映像,但我看不到您会释放它(请检查
cvReleaseImage()
)。因此,在每次迭代之后,会分配越来越多的内存,从而产生真正的内存泄漏

编辑


cvResetImageROI(&tmpimag);
不会释放图像,它只是重置先前设置的ROI信息。您仍然需要
cvResetImageROI(&tmpimag)

根据您的一小段代码,mem泄漏可能是您的错误

在循环的每次迭代中,您都会使用
cvCreateImage()
创建/分配一个新映像,但我看不到您会释放它(请检查
cvReleaseImage()
)。因此,在每次迭代之后,会分配越来越多的内存,从而产生真正的内存泄漏

编辑


cvResetImageROI(&tmpimag);
不会释放图像,它只是重置先前设置的ROI信息。您仍然需要
cvReleaseImage(&tmpimag)

每次循环迭代时您都会释放targetImage吗?

每次循环迭代时您都会释放targetImage吗?

我会在循环开始时释放它。顺便问一下,您使用的是哪个版本?发现内存泄漏,不是这个问题!非常抱歉,非常感谢您的帮助hints@davan这很重要对我们来说,你审查答案,要么接受解决问题的答案,要么投票选出真正帮助你的答案。@karlphillip我找不到要感谢的按钮!我没有注册,所以可能是因为这个原因。可能是吗?我找不到接受答案的按钮。我在循环的一开始就发布了您使用的是ich版本吗?发现内存泄漏,这不是cvCopy的问题!很抱歉,非常感谢您的帮助hints@davan对我们来说,重要的是,你要检查答案,要么接受解决你问题的答案,要么投票选出真正帮助你的答案。@karlphillip我找不到要感谢的按钮!我没有注册,所以可能这就是原因。可能是吗?我找不到接受答案的按钮。我在循环开始时释放它。是的,查找内存泄漏,不是这个cvCopy问题!非常抱歉,非常感谢您的提示。我在循环开始时释放它。是的,查找内存泄漏,不是这个cvCopy问题!很抱歉,非常感谢您的提示