Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <QtWidgets>
#include <QtOpenGL>
#include <QSignalMapper>
// Added for Qt5 support
#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrintDialog>
#include "stereoItem.h"
#include "stereoWidget.h"
#include "colorMarkerItem.h"
#include "multiColorMarkerItem.h"
#include "colorRangeWidget.h"
#include "colorMarkerWidget.h"
#include "codeMarkerWidget.h"
#include "multiColorMarkerWidget.h"
#include "petrack.h"
#include "control.h"
#include "view.h"
#include "gridItem.h"
#include "imageItem.h"
#include "logoItem.h"
#include "animation.h"
#include "player.h"
#include "calibFilter.h"
#include "autoCalib.h"
#include "recognition.h"
#include "trackerItem.h"
#include "backgroundItem.h"
#include "tracker.h"
#include "trackerReal.h"
#include "cmath"
#ifdef AVI
#include "aviFile.h"
#else
#include "aviFileWriter.h"
#endif
#include "person.h"
#include <time.h>
#include <cstdlib>
#include <iomanip>
#include "opencv.hpp"
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
// Zeitausgabe aktivieren
//#define TIME_MEASUREMENT
//temp muss spaeter herausgenommen werden,
// dient dazu, in anderen dateien um schnell ueber cw->temp1->value() an einstellbare daten zu kommen
Control *cw;
int Petrack::trcVersion = 0;
using namespace::cv;
// Reihenfolge des anlegens der objekte ist sehr wichtig
Petrack::Petrack()
{
QIcon icon;
icon.addFile(":/icon"); // about
// icon.addFile(":/icon_small");
// icon.addFile(":/icon_smaller");
icon.addFile(":/icon_smallest"); // window title bar
setWindowIcon(icon); // QIcon(":/icon")fuer about und icon in windows titel bar top left
mHeadSize = -1;
mCmPerPixel = -1;
mScene = NULL;
mTracker = NULL;
mTrackerReal = NULL; // damit beim zeichnen von control mit analysePlot nicht auf einen feheler laeuft
mStatusLabelFPS = NULL;
mStatusPosRealHeight = NULL;
mStatusLabelPosReal = NULL;
mImageItem = NULL;
mRecognitionChanged = true;
mTrackChanged = true;
mCoordItem = NULL;
mImage = NULL;
// mIplImg = NULL;
// mIplImgFiltered = NULL;
setLoading(true);
// mPrevIplImgFiltered = NULL;
// mPrevFrame = -1;
setAcceptDrops(true);
// grabKeyboard(); // nimmt alle Keyboard Eingaben entgegen, eintragen in Text-Felder dann nicht mehr moeglich
// grabMouse(); // nimmt alle MouseEvents eintgegen, Doppelklick etc. dann nicht mehr moeglich
int space = 2;
// setAccessibleName("PeTrack");
mBrightContrastFilter.disable();
// mContrastFilter.disable();
// mBrightFilter.disable();
mBorderFilter.disable();
mSwapFilter.disable();
mBackgroundFilter.disable();
mStereoContext = NULL;
mCalibFilter = new CalibFilter; // schoener waere erst zu erzeugen, wenn video geladen wird, da sonst bei stereo erst normealer und dann stereo objekt erzeugt wird
mCalibFilter->disable(); // aber control widget greift schon bei erzeugung auf alle objekte zur einstellung zurueck
//mCalibFilter.disable(); //enable();
//mImageBorderSize=0;
mControlWidget = new Control(this);
mControlWidget->setFixedWidth(mControlWidget->geometry().width());
mControlWidget->setMinimumHeight(mControlWidget->geometry().height());
mControlWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
//setFixedSize(mControlWidget->geometry().width(),mControlWidget->geometry().height());
cw = mControlWidget; // muss spaeter geloescht werden
mStereoWidget = new StereoWidget(this);
mStereoWidget->setWindowFlags(Qt::Window);
mStereoWidget->setWindowTitle("Stereo parameter");
//mStereoWidget->show();
mColorRangeWidget = new ColorRangeWidget(this);
mColorRangeWidget->setWindowFlags(Qt::Window);
mColorRangeWidget->setWindowTitle("Color range");
mColorMarkerWidget = new ColorMarkerWidget(this);
mColorMarkerWidget->setWindowFlags(Qt::Window);
mColorMarkerWidget->setWindowTitle("Color marker parameter");
//mColorMarkerWidget->show();
mCodeMarkerWidget = new CodeMarkerWidget(this);
mCodeMarkerWidget->setWindowFlags(Qt::Window);
mCodeMarkerWidget->setWindowTitle("Code marker parameter");
//mCodeMarkerWidget->show();
mMultiColorMarkerWidget = new MultiColorMarkerWidget(this);
mMultiColorMarkerWidget->setWindowFlags(Qt::Window);
mMultiColorMarkerWidget->setWindowTitle("MultiColor marker parameter");
//mColorMarkerWidget->show();
mScene = new QGraphicsScene;
mImageItem = new ImageItem(this); // durch uebergabe von scene wird indirekt ein scene->addItem() aufgerufen
mControlWidget->setScene(mScene);
// wird in controll.cpp behandelt!!!
// if (mControlWidget->filterBright->checkState() == Qt::Checked)
// mBrightFilter.enable();
// else //Qt::Unchecked
// mBrightFilter.disable();
// if (mControlWidget->filterContrast->checkState() == Qt::Checked)
// mContrastFilter.enable();
// else //Qt::Unchecked
// mContrastFilter.disable();
// if (mControlWidget->filterContrast->checkState() == Qt::Checked)
// mContrastFilter.enable();
// else //Qt::Unchecked
// mContrastFilter.disable();
mAnimation = new Animation(this);
// mImage = new QImage; // wird erst bei neuer sequenz erstellt, da dort groesse bekannt,
// zudem kann so ueber mImage==NULL beginn abgefragt werden
// // hier koennte ein Einfuehrungsbild mit logo etc eingeblendet werden
// mImage->load(":/logo");
// //C:/Dokumente und Einstellungen/Maik Boltes/Eigene Dateien/diss/logo/logo.png
// mImageItem->setLogo(mImage);
// // so wurde gruene recogniton area zurueckgesetzt:
// //mImageItem->setImage(mImage);
mLogoItem = new LogoItem(this); // durch uebergabe von scene wird indirekt ein scene->addItem() aufgerufen
mLogoItem->setZValue(6); // groesser heisst weiter oben
mExtrCalibration.setMainWindow(this);
//mExtCalibration = new ExtrCalibration(this); // muss vor CoordItem (und GridItem) stehen damit man auf useExtCalib abfragen kann
mGridItem = new GridItem(this);
mGridItem->setZValue(2.5); // durch uebergabe von scene wird indirekt ein scene->addItem() aufgerufen
mCoordItem = new CoordItem(this);
mCoordItem->setZValue(3); // groesser heisst weiter oben
mImageItem->setCoordItem(mCoordItem);
mTrackingRoiItem = new TrackingRoiItem(this);
mTrackingRoiItem->setZValue(4); // groesser heisst weiter oben
mRecognitionRoiItem = new RecognitionRoiItem(this);
mRecognitionRoiItem->setZValue(5); // groesser heisst weiter oben
mViewWidget = new ViewWidget(this);
mView = mViewWidget->view();
//mScene->setSceneRect(0, 0, 0, 0);
mView->setScene(mScene);
connect(mView, SIGNAL(mouseDoubleClick()), this, SLOT(openSequence()));
connect(mView, SIGNAL(mouseShiftDoubleClick(QPointF)), this, SLOT(addManualTrackPointOnlyVisible(QPointF))); //const QPoint &pos funktionierte nicht
connect(mView, SIGNAL(mouseShiftControlDoubleClick(QPointF)), this, SLOT(splitTrackPerson(QPointF))); //const QPoint &pos funktionierte nicht
connect(mView, SIGNAL(mouseControlDoubleClick(QPointF)), this, SLOT(addManualTrackPoint(QPointF))); //const QPoint &pos funktionierte nicht
connect(mView, SIGNAL(mouseRightDoubleClick(QPointF, int)), this, SLOT(deleteTrackPoint(QPointF, int))); //const QPoint &pos funktionierte nicht
connect(mView, SIGNAL(mouseMiddleDoubleClick(int)), this, SLOT(deleteTrackPointAll(int))); //const QPoint &pos funktionierte nicht
connect(mView, SIGNAL(mouseShiftWheel(int)), this, SLOT(skipToFrameWheel(int)));
//connect(mView, SIGNAL(mouseRightClick(QPointF)), this, SLOT(showContextMenu(QPointF)));
Loading
Loading full blame...