- fix a memory leak
This commit is contained in:
parent
14f65f79f0
commit
fc19e856a6
@ -457,6 +457,9 @@ public:
|
|||||||
*/
|
*/
|
||||||
ORB(size_t n_features = 500, const CommonParams & detector_params = CommonParams());
|
ORB(size_t n_features = 500, const CommonParams & detector_params = CommonParams());
|
||||||
|
|
||||||
|
/** destructor to empty the patterns */
|
||||||
|
~ORB();
|
||||||
|
|
||||||
/** returns the descriptor size in bytes */
|
/** returns the descriptor size in bytes */
|
||||||
int descriptorSize() const;
|
int descriptorSize() const;
|
||||||
|
|
||||||
|
@ -470,7 +470,8 @@ ORB::ORB(size_t n_features, const CommonParams & detector_params) :
|
|||||||
{
|
{
|
||||||
// fill the extractors and descriptors for the corresponding scales
|
// fill the extractors and descriptors for the corresponding scales
|
||||||
float factor = 1.0 / params_.scale_factor_ / params_.scale_factor_;
|
float factor = 1.0 / params_.scale_factor_ / params_.scale_factor_;
|
||||||
int n_desired_features_per_scale = cvRound(n_features / ((std::pow(factor, (int)params_.n_levels_) - 1) / (factor - 1)));
|
int n_desired_features_per_scale = cvRound(n_features / ((std::pow(factor, int(params_.n_levels_)) - 1)
|
||||||
|
/ (factor - 1)));
|
||||||
n_features_per_level_.resize(detector_params.n_levels_);
|
n_features_per_level_.resize(detector_params.n_levels_);
|
||||||
for (unsigned int level = 0; level < detector_params.n_levels_; level++)
|
for (unsigned int level = 0; level < detector_params.n_levels_; level++)
|
||||||
{
|
{
|
||||||
@ -497,6 +498,15 @@ ORB::ORB(size_t n_features, const CommonParams & detector_params) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** destructor to empty the patterns */
|
||||||
|
ORB::~ORB()
|
||||||
|
{
|
||||||
|
for (std::vector<OrbPatterns*>::const_iterator pattern = patterns_.begin(), pattern_end = patterns_.end(); pattern
|
||||||
|
!= pattern_end; ++pattern)
|
||||||
|
if (*pattern)
|
||||||
|
delete *pattern;
|
||||||
|
}
|
||||||
|
|
||||||
/** returns the descriptor size in bytes */
|
/** returns the descriptor size in bytes */
|
||||||
int ORB::descriptorSize() const
|
int ORB::descriptorSize() const
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user