gpt4 book ai didi

c++ - OpenCV - cvExtractSURF 导致内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:18 24 4
gpt4 key购买 nike

我正在使用 OpenCV 函数:cvExtractSURF 但我发现了一个主要的内存泄漏。有没有人成功实现过这个电话?

我的代码如下:

IplImage *cvImage = [self CreateIplImageFromUIImage:image grayscale:YES];

CvMemStorage* storage = cvCreateMemStorage(0);

CvSeq *objectKeypoints = 0;
//CvSeq *objectDescriptors = 0;

CvSURFParams params = cvSURFParams(self.hessianThreshold, 0);
double tt = (double)cvGetTickCount();

//Extract the features
cvExtractSURF( cvImage, 0, &objectKeypoints, NULL, storage, params, 0);

tt = (double)cvGetTickCount() - tt;
//NSLog(@"%d features found in %gms seconds\n", objectKeypoints->total, tt/(cvGetTickFrequency()*1000.));

cvReleaseImage(&cvImage);
cvReleaseMemStorage(&storage);

有什么可能泄漏的想法吗?当我注释掉该行时:

cvExtractSURF( cvImage, 0, &objectKeypoints, NULL, storage, params, 0);

没有发生泄漏。

最佳答案

函数 cvExtractSURF 创建一个 CvSURFPoint 类型的对象列表,并将指向它的指针放在 objectKeypoints 中。你必须释放它。

添加调用...

cvRelease((void **)&objectKeypoints);

关于c++ - OpenCV - cvExtractSURF 导致内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com