0

如果这看起来像一个愚蠢的问题,我很抱歉......我对 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...
}

为什么此解决方案不起作用(内存访问错误)?最好的问候,六。

4

1 回答 1

2

是的,由 cvLoadImage 分配的内存。出现错误是因为您没有在开始时初始化框架。它必须由零或 NULL 初始化。

于 2013-08-01T17:58:13.743 回答