Commit fc19e856 authored by Vincent Rabaud's avatar Vincent Rabaud

- fix a memory leak

parent 14f65f79
......@@ -457,6 +457,9 @@ public:
*/
ORB(size_t n_features = 500, const CommonParams & detector_params = CommonParams());
/** destructor to empty the patterns */
~ORB();
/** returns the descriptor size in bytes */
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
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_);
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 */
int ORB::descriptorSize() const
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment