My Project
TrackerStat.h
Go to the documentation of this file.
1 /*
2  * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3  *
4  * Copyright 2007-2012 VTT Technical Research Centre of Finland
5  *
6  * Contact: VTT Augmented Reality Team <alvar.info@vtt.fi>
7  * <http://www.vtt.fi/multimedia/alvar.html>
8  *
9  * ALVAR is free software; you can redistribute it and/or modify it under the
10  * terms of the GNU Lesser General Public License as published by the Free
11  * Software Foundation; either version 2.1 of the License, or (at your option)
12  * any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17  * for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with ALVAR; if not, see
21  * <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>.
22  */
23 
24 #ifndef TRACKERSTAT_H
25 #define TRACKERSTAT_H
26 
27 #include "Tracker.h"
28 #include "TrackerFeatures.h"
29 #include "Util.h"
30 
37 namespace alvar {
38 
42 class ALVAR_EXPORT TrackerStat : public Tracker
43 {
44 protected:
46  HistogramSubpixel hist;
47 
48 public:
50  double xd;
52  double yd;
54  TrackerStat(int binsize = 8);
56  void Reset();
60  double Track(cv::Mat &img);
61  virtual void Compensate(double *x, double *y);
62 };
63 
67 class ALVAR_EXPORT TrackerStatRot : public TrackerStat
68 {
69  int x_res, y_res;
70  HistogramSubpixel hist_rot;
71 
72 public:
74  double rotd;
76  TrackerStatRot(int binsize = 8, int binsize_rot = 3);
80  double Track(cv::Mat &img);
81  virtual void Compensate(double *x, double *y);
82 };
83 
84 } // namespace alvar
85 
86 #endif
This file implements a tracking interface.
This file implements a feature tracker.
This file implements generic utility functions and a serialization interface.
N-dimensional Histograms calculating also the subpixel average for max bin.
Definition: Util.h:289
TrackerFeatures tracks features using OpenCV's cvGoodFeaturesToTrack and cvCalcOpticalFlowPyrLK
Pure virtual base class for tracking optical flow.
Definition: Tracker.h:45
TrackerStat deduces the optical flow based on tracked features using Seppo Valli's statistical tracki...
Definition: TrackerStat.h:43
void Reset()
Reset.
TrackerStat(int binsize=8)
Constructor.
double Track(cv::Mat &img)
Translation tracker (the simplest possible)
double yd
Track result y-translation in pixels
Definition: TrackerStat.h:52
double xd
Track result x-translation in pixels
Definition: TrackerStat.h:50
TrackerStatRot implements a slightly extended version of TrackerStat which can also detect sideways r...
Definition: TrackerStat.h:68
double rotd
Track result rotation in degrees
Definition: TrackerStat.h:74
TrackerStatRot(int binsize=8, int binsize_rot=3)
Constructor.
double Track(cv::Mat &img)
Translation + rotation tracker.
Main ALVAR namespace.
Definition: Alvar.h:174