- 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());
|
||||
|
||||
/** 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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user