Repository navigation
Expand file tree
/
Copy pathmainwindow.h
More file actions
203 lines (151 loc) · 4.84 KB
/
Copy pathmainwindow.h
File metadata and controls
203 lines (151 loc) · 4.84 KB
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
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
201
202
203
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLCDNumber>
#include <QtWidgets/QLabel>
//#include <QtWidgets/QMainWindow>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSlider>
#include <QtWidgets/QWidget>
#include "QVTKWidget.h"
#include <QDebug>
#include <QContextMenuEvent> //用于产生右键事件
#include <qmessagebox.h>
#include <vector>
#include <QFileDialog>
#include <QPushButton>
#include <windows.h>
// Point Cloud Library
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/point_cloud_color_handlers.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/filters/statistical_outlier_removal.h> //统计滤波器头文件
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/filters/fast_bilateral.h>
#include <pcl/filters/extract_indices.h>
// Visualization Toolkit (VTK)
#include <vtkRenderWindow.h>
#include <vtkRenderWindow.h>
#include <vtkPNGReader.h>
#include <vtkImageData.h>
#include <vtkLogoRepresentation.h>
#include <vtkLogoWidget.h>
#include <vtkAxesActor.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkScalarBarWidget.h>
#include <vtkScalarBarActor.h>
#include <vtkScalarBarRepresentation.h>
#include <vtkColorTransferFunction.h>
#include <ImageProcess.h>
#include <Calibrate.h>
#include <QListWidget>
#include <CloudProcess.h>
//
#include "strmif.h"
#include <initguid.h>
#include<vector>
#include<string>
#pragma comment(lib, "setupapi.lib")
#define VI_MAX_CAMERAS 20
DEFINE_GUID(CLSID_SystemDeviceEnum, 0x62be5d10, 0x60eb, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
DEFINE_GUID(CLSID_VideoInputDeviceCategory, 0x860bb310, 0x5d01, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
#include "Threads.h"
enum GetLineMethods {Average,Steger};
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
//相机标定的图片路径,后面可以改成mat类型的
std::vector<cv::Mat> Camera_Calib;
//拼接基准的图片路径
cv::Mat Base;
//没有激光的标定板的图片路径,用于计算光平面
std::vector<cv::Mat> Plane_Board_noLaser;
//激光的标定板,用于计算光平面
std::vector<cv::Mat> Plane_Laser;
//步长计算的图片路径
std::vector<cv::Mat> Step_Calculate;
//步长计算的图片路径
std::vector<cv::Mat> Scan_Laser;
//保存兴趣点
vector<cv::Point3d> ROI;
//PCL滤波
pcl::visualization::PCLVisualizer::Ptr viewer;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_filtered;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_after_StatisticalRemoval;
//激光三角法
//相机
CalibrateCamera* camera;
//激光平面
LaserPlane* ALaserPlane;
//步长
step* Astep;
//标定标志
bool isCameraCalib;
bool isPlaneCalib;
bool isStepCalib;
bool isLaserImg;
bool isBaseCalib;
bool isCalibed;
//点云显示
unsigned int red, green, blue,size;
//相机相关
const std::string winName = "camera";
CameraDisplay* CameraDisp;
QTimer* tim;
float fps;
//存储摄像头名称
vector<string> CameraName;
int listDevices(vector<string>& list);
//暂时没有用到
GetLineMethods getlinemethod;
//右键菜单
QMenu* popMenu_In_ListWidget_;
QAction* action_Delete_In_ListWidget_;
QAction* action_Clear_In_ListWidget_;
QListWidget* currentListWidget;
private slots:
void on_BN_Select_Clib_Picture_clicked();
void on_BN_Select_Base_Picture_clicked();
void on_BN_Select_Board_noLaser_clicked();
void on_BN_Select_Board_Laser_clicked();
void on_BN_Select_Step_Pic_clicked();
void on_BN_Select_LaserLine_clicked();
void on_pushButton_Caculate_clicked();
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_clearClib_clicked();
void on_pushButton_cloud_clear_clicked();
void on_pushButton_flashcamera_clicked();
void on_pushButton_camerastart_clicked();
void on_pushButton_camerapause_clicked();
void on_pushButton_cameracontinue_clicked();
void on_pushButton_camerastop_clicked();
void on_pushButton_save_clicked();
void on_pushButton_load_clicked();
void RGBsliderReleased();
void pSliderValueChanged(int value);
void redSliderValueChanged(int value);
void greenSliderValueChanged(int value);
void blueSliderValueChanged(int value);
void onCustomContextMenuRequested(QPoint pos);
void onActionDelete();
void onActionClear();
void setEven(int value);
void onTimeOut();
};
#endif // MAINWINDOW_H