12 #ifndef PARTICLEFILTER_HEADER
13 #define PARTICLEFILTER_HEADER
15 #include "StrongClassifier.h"
16 #include "IntegralImage.h"
17 #include "MatchMatrix.h"
56 const Rect &detection,
float detectionWeight);
70 void DrawParticles(cv::Mat &img,
const cv::Scalar &color)
const;
71 void DrawParticlesWithConfidence(cv::Mat &img,
const cv::Scalar &color)
const;
74 void DrawTarget(cv::Mat &img,
const cv::Scalar &color)
const;
76 inline const Rect &GetTarget()
const {
80 inline void SetTarget(
const Rect &t) {
81 prevDets.push_back(t);
82 if (prevDets.size() == 5) {
87 int width = 0, height = 0;
88 for (
const auto &det : prevDets) {
93 target.width = width / prevDets.size();
94 target.height = height / prevDets.size();
104 const int numParticles;
106 const int sizeParticle;
112 std::deque<Rect> prevDets;
115 std::default_random_engine generator;
118 std::normal_distribution<float> gaussian;
121 std::uniform_real_distribution<float> resampler;
127 inline int BinarSearch(
float prob)
const {
129 if (prob <= confidence[0])
132 int end = numParticles - 1;
133 int mid = (start + end) / 2;
134 while (start < end - 1) {
135 if (prob <= confidence[mid]) {
141 mid = (start + end) / 2;
Definition: Geometry.h:34
void InitBuffer()
Definition: ParticleFilter.cpp:9
ParticleFilter(int n=100, int szParticle=2)
Definition: ParticleFilter.cpp:3
void Propagate(const Size &imgSize)
Definition: ParticleFilter.cpp:29
void ResampleWithBest()
Definition: ParticleFilter.cpp:90
Definition: Geometry.h:14
void InitParticles()
Definition: ParticleFilter.cpp:185
void Observe(const StrongClassifier *classifier, const IntegralImage *intImage)
Definition: ParticleFilter.cpp:51
void InitTarget(const Rect &target)
Definition: ParticleFilter.cpp:15
Definition: IntegralImage.h:11
Definition: ParticleFilter.h:19
Definition: StrongClassifier.h:15
void ResampleWithConfidence()
Definition: ParticleFilter.cpp:108