cvHoughLines2内存泄漏
cvHoughLines2 memory leak
是否OpenCV方法HoughLines2有内存泄漏,目前尚未修复(版本2.1.0.6),或者我的这部分代码有问题?
CvMemStorage *storage = cvCreateMemStorage(0);
CvSeq *linesSeq = 0;
double smallL = 0.0, bigL=0.0, smallA = 0.0, bigA = 0.0;
linesSeq = cvHoughLines2(cannyImg, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180.0, 30, 50, 15);
for( int i = 0;i < linesSeq->total; i++ ){
CvPoint* line = (CvPoint*)cvGetSeqElem(linesSeq,i);
double sz = sqrt((line[0].x- line[1].x) *(line[0].x- line[1].x) + (line[0].y -line[1].y)*(line[0].y-line[1].y));
if(sz < 70.0 ) smallL+=1.0;
else bigL +=1.0;
double deltaY = line[1].y - line[0].y;
double deltaX = line[1].x - line[0].x;
double angle;
if ( abs(deltaX) > 1e-7){
angle = atan2(deltaY, deltaX);
if (angle < 0.1) smallA+=1.0;
else bigA+=1.0;
}else{
}
}
cvClearMemStorage(storage);
cvClearSeq(linesSeq);
cvReleaseImage(&cannyImg);
谢谢
您正在使用cvClearMemStorage
。这不会释放内存,它只是重置一些指针。如果您想要释放内存,您应该使用cvReleaseMemStorage(&storage)
(顺便说一下,您不再需要cvClearSeq
,因为您将释放内存)。
相关文章:
- C++功能泄漏内存,我是C++新手,不确定如何解决
- 我的堆栈弹出式磁带的实现是否泄漏内存?
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 析构函数 C++ 使泄漏内存
- 构造函数对象赋值是否泄漏内存
- corba :: orb_init泄漏内存
- Gmock泄漏内存
- 如何在不泄漏内存的情况下删除链接列表
- Visual C ODBC关闭记录集泄漏内存
- 为什么泄漏内存比在动态数组上执行 delete[] 慢
- OpenGL正在泄漏内存.哪个对象未释放
- 可以std ::退出泄漏内存
- uiautomation findall泄漏内存
- 为什么在此OpenCL代码中泄漏内存,为什么要泄漏内存
- pthread在完成后会泄漏内存
- win32 标准::线程泄漏内存
- 返回指向同一变量的指针是否会泄漏内存
- 使用clectType(new any_type())可能会泄漏内存泄漏
- Windows开发:如何确定我的应用程序是否正在泄漏内存
- WinHttp打开泄漏内存