OpenCV:我们是不是需要删除 CvPoint 以及如何删除?

Posted

技术标签:

【中文标题】OpenCV:我们是不是需要删除 CvPoint 以及如何删除?【英文标题】:OpenCV: Do we need to delete CvPoint's and how to do it?OpenCV:我们是否需要删除 CvPoint 以及如何删除? 【发布时间】:2010-11-14 20:58:39 【问题描述】:

所以我们有类似的东西:

//...
    for(i=0;i<out->size;i++)
    
        CvPoint pt1 =  out->values[ i * out->dim + 0 ], out->values[ i * out->dim + 1];
        CvPoint pt2 =  out->values[ i * out->dim + 2 ], out->values[ i * out->dim + 3 ] ;
        cvLine(destination, pt1, pt2, CV_RGB(240, 255, 255), 1, CV_AA,0);
    
//...

每秒执行 24 次,大约 200 行。我们是否需要删除 CvPoint 以及如何删除?

【问题讨论】:

【参考方案1】:

您不需要删除它们,编译器会自动为您删除 CvPoint 实例,因为它们存储在堆栈中。

【讨论】:

【参考方案2】:

您只需要删除指针,然后只需删除指向使用new 分配的对象的指针。通常,C++ 中的清理由析构函数自动处理(例如CvPoint::~CvPoint)。因此delete 是异常的外部析构函数。

【讨论】:

以上是关于OpenCV:我们是不是需要删除 CvPoint 以及如何删除?的主要内容,如果未能解决你的问题,请参考以下文章

opencv的基本数据类型CvPoint,CvSize,CvRect,CvScalar

从“CvSeq”类型到“CvPoint*”类型的无效转换(如何在 Opencv 中进行类型转换)

[OpenCV学习笔记1][OpenCV基本数据类型]

OpenCV基础类型

3.1 OpenCV的基本数据类型

OpenCV结构简介