如果这个问题看起来很傻,我很抱歉。。。我对OpenCV:中的cvLoadImage有疑问
IplImage *frame;
for (unsigned int i = 0; i < LENGTH; i++)
{
frame = cvLoadImage(filename.c_str());
// do something...
}
对于cvLoadImage
的每次调用,是否在存储器中存储了新的IplImage
?frame
指向的旧变量是否在重写后从堆中释放?
此外,当我试图发布如下图片时。。。
IplImage *frame;
for (unsigned int i = 0; i < LENGTH; i++)
{
if (frame != NULL)
cvReleaseImage(&frame);
frame = cvLoadImage(filename.c_str());
// do something...
}
为什么这个解决方案不起作用(内存访问错误)?尊敬的Vi.
是,内存由cvLoadImage分配。出现错误,因为您在开始时没有初始化帧。它必须由零或NULL初始化。