reduced memory requirements for multi-band blending

This commit is contained in:
Alexey Spizhevoy
2011-05-24 09:58:25 +00:00
parent 15677d6d28
commit 3d50df37c2
3 changed files with 55 additions and 37 deletions

View File

@@ -99,18 +99,19 @@ void estimateFocal(const vector<ImageFeatures> &features, const vector<MatchesIn
}
}
if (all_focals.size() > 0)
{
nth_element(all_focals.begin(), all_focals.end(), all_focals.begin() + all_focals.size()/2);
for (int i = 0; i < num_images; ++i)
focals[i] = all_focals[all_focals.size()/2];
}
else
if (static_cast<int>(all_focals.size()) < num_images - 1)
{
LOGLN("Can't estimate focal length, will use anaive approach");
double focals_sum = 0;
for (int i = 0; i < num_images; ++i)
focals_sum += features[i].img_size.width + features[i].img_size.height;
for (int i = 0; i < num_images; ++i)
focals[i] = focals_sum / num_images;
}
else
{
nth_element(all_focals.begin(), all_focals.end(), all_focals.begin() + all_focals.size()/2);
for (int i = 0; i < num_images; ++i)
focals[i] = all_focals[all_focals.size()/2];
}
}