-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubwindow.h
128 lines (112 loc) · 3.24 KB
/
subwindow.h
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
46
47
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
#pragma once
#ifndef SUBWINDOW_H
#define SUBWINDOW_H
#include <QWidget>
#include <QFileDialog>
#include <QOpenGLFunctions>
#include <QOpenGLWidget>
#include <QTime>
#include <QVBoxLayout>
#include <QMouseEvent>
#include <QKeyEvent>
#include "ui_subwindow.h"
#include <QtOpenGL/QtOpenGL>
#include <opencv2/core/types_c.h>
#include "ARVisual.h"
#include "VtkVisual.h"
#include "VTKFile/VTKDisplay.h"
#include "VTKFile/VTKAR.h"
#include "VideoFlow.h"
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
//#include "Registration.h"
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <QThread>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget* parent = 0);
~MainWindow();
QVBoxLayout* verticalLayout;
QTimer clk;
float m_x, m_y, m_z;
GLuint textur;
cv::Mat frame;
cv::Mat orFrame;
protected:
void initializeGL();
void initWidget();
void paintGL();
void resizeGL(int width, int height);
void loadGLTextures();
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void keyPressEvent(QKeyEvent* event);
cv::Mat QImage2cvMat(QImage image);
QThread *aimooeThread;
private slots:
void on_btnCameraCtrl_clicked();
void paintEvent(QPaintEvent* e);
void onLoadModel();
void timerEvent(QTimerEvent* event);
void openNDI();
void vGuide();
//void updateWindow();
void HandleSignal(QString);
void on_btnLocation_clicked();
void Sampling(bool flage);
void Regist();
void DisplayVTKImage(cv::Mat& mat);
void on_btnProjectCtrl_clicked();
private:
Ui::MainWindow* ui;
// QCamera* m_camera;//ÉãÏñÍ·É豸
bool isCamera;
bool isModel;
bool isvGuide;
bool isCollection;
QWidget* mContainer;
QWidget* vContainer;
//Registration *R;
QImage cvMat2QImage(const cv::Mat& mat);
/* ModelOperator* vModel;
ModelOperator* mModel;*/
cv::Mat Model2vGuide;
cv::Mat Virtrul2Reality;
std::vector<cv::Point3i> labelPoint;
std::vector<cv::Point3i> ModelPoint;
QThread* thread;
std::ofstream ofile;
cv::VideoWriter outputVideo;
float* Msg;
char timePicDir[40];
std::vector<cv::Point3f> pts_3d;
std::vector<cv::Point3f> Showpts_3d;
float x = -0.370740907093656; float y = -0.2397403632299851; float z = -0.0407927826288379;
float alpha = 0.1;
float beta = 0.1;
float theta = 0.1;
QStringList Positionlist;
QVector3D InitPosition;
QVector3D InitAngle;
cv::Point3f Modelorg;
vtkSmartPointer<vtkActor> objActor;
double* origin;
vtkImageActor* backgroundActor;
vtkSmartPointer<vtkRenderer> sceneRenderer;
vtkSmartPointer<vtkActor> pointActor;
vtkSmartPointer<vtkRenderer> backgroundRenderer;
int countFrame = 0;
std::shared_ptr<CVTKAR> vtkAR = nullptr;
std::shared_ptr<CVTKDisplay> vtkDisplay = nullptr;
std::shared_ptr<CVTKDisplay> vtkDisplay2 = nullptr;
// Qt3DCore::QEntity *lightEntity;
// QString directory;
};
#endif // subWindow_H