Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.5 KiB
68 lines
1.5 KiB
// This file is part of OpenCV project. |
|
// It is subject to the license terms in the LICENSE file found in the top-level directory |
|
// of this distribution and at http://opencv.org/license.html. |
|
|
|
#include "../../precomp.hpp" |
|
|
|
#include "opencv2/video/detail/tracking.detail.hpp" |
|
|
|
namespace cv { |
|
namespace detail { |
|
inline namespace tracking { |
|
|
|
TrackerSampler::TrackerSampler() |
|
{ |
|
blockAddTrackerSampler = false; |
|
} |
|
|
|
TrackerSampler::~TrackerSampler() |
|
{ |
|
// nothing |
|
} |
|
|
|
void TrackerSampler::sampling(const Mat& image, Rect boundingBox) |
|
{ |
|
clearSamples(); |
|
|
|
for (size_t i = 0; i < samplers.size(); i++) |
|
{ |
|
CV_DbgAssert(samplers[i]); |
|
std::vector<Mat> current_samples; |
|
samplers[i]->sampling(image, boundingBox, current_samples); |
|
|
|
//push in samples all current_samples |
|
for (size_t j = 0; j < current_samples.size(); j++) |
|
{ |
|
std::vector<Mat>::iterator it = samples.end(); |
|
samples.insert(it, current_samples.at(j)); |
|
} |
|
} |
|
|
|
blockAddTrackerSampler = true; |
|
} |
|
|
|
bool TrackerSampler::addTrackerSamplerAlgorithm(const Ptr<TrackerSamplerAlgorithm>& sampler) |
|
{ |
|
CV_Assert(!blockAddTrackerSampler); |
|
CV_Assert(sampler); |
|
|
|
samplers.push_back(sampler); |
|
return true; |
|
} |
|
|
|
const std::vector<Ptr<TrackerSamplerAlgorithm>>& TrackerSampler::getSamplers() const |
|
{ |
|
return samplers; |
|
} |
|
|
|
const std::vector<Mat>& TrackerSampler::getSamples() const |
|
{ |
|
return samples; |
|
} |
|
|
|
void TrackerSampler::clearSamples() |
|
{ |
|
samples.clear(); |
|
} |
|
|
|
}}} // namespace cv::detail::tracking
|
|
|