ProjectedTextures
Prototype software for spacial augmented reality applications.
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Macros
ShaderLamps
src
Tracker.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <QMatrix4x4>
4
#include <QThread>
5
#include <QTime>
6
#include <QQueue>
7
#include <opencv2/opencv.hpp>
8
#include "
Similarity.h
"
9
10
using
cv::Mat;
11
16
struct
FilterConfig
{
17
bool
kalman
;
19
double
processNoise
;
20
double
measurementNoise
;
22
int
stabilizationFrames
;
23
float
maxTranslation
;
24
float
maxRotation
;
25
};
26
27
28
class
Tracker
:
29
public
QThread
30
{
31
Q_OBJECT
32
33
public
:
38
Tracker
(
FilterConfig
filterConfig
,
int
maxUpdateRate
= 60);
39
virtual
~Tracker
(
void
){}
40
41
void
stop
();
42
void
stopAndDelete
();
44
virtual
Similarity
getPose
(
int
trackableId) = 0;
45
virtual
Similarity
getOrigin
() = 0;
46
virtual
bool
isTracked
(
int
trackableId) = 0;
48
protected
:
49
virtual
void
update
() = 0;
50
void
run
();
51
int
maxUpdateRate
;
54
//calculate fps
55
QTime
t
;
56
int
executionTime
;
57
static
const
int
fpsQueueLength
= 32;
58
QQueue<int>
fpsQueue
;
59
int
avgFPS
;
60
void
updateFPS
(
int
timeElapsed);
61
62
QMutex
stopMutex
;
63
volatile
bool
doStop
;
65
FilterConfig
filterConfig
;
70
//Kalman Filter
71
int
nStates
;
72
int
nMeasurements
;
73
int
nInputs
;
74
Mat
measurements
;
75
void
initKalmanFilter
(cv::KalmanFilter &KF);
76
void
fillMeasurements
( cv::Mat &
measurements
,
Similarity
pose);
77
void
updateKalmanFilter
( cv::KalmanFilter &KF, cv::Mat &measurement,
Similarity
&pose);
78
79
signals:
80
void
newOrigin
(QMatrix4x4 origin);
81
void
newFps
(
int
fps);
83
};
Generated on Fri Feb 19 2016 11:04:41 for ProjectedTextures by
1.8.4