9 #ifndef UI_MAIN_WINDOW_H 10 #define UI_MAIN_WINDOW_H 12 #include <QtCore/QVariant> 13 #include <QtWidgets/QAction> 14 #include <QtWidgets/QApplication> 15 #include <QtWidgets/QCheckBox> 16 #include <QtWidgets/QDockWidget> 17 #include <QtWidgets/QDoubleSpinBox> 18 #include <QtWidgets/QGridLayout> 19 #include <QtWidgets/QGroupBox> 20 #include <QtWidgets/QHBoxLayout> 21 #include <QtWidgets/QLabel> 22 #include <QtWidgets/QLineEdit> 23 #include <QtWidgets/QMainWindow> 24 #include <QtWidgets/QMenu> 25 #include <QtWidgets/QMenuBar> 26 #include <QtWidgets/QSpacerItem> 27 #include <QtWidgets/QSpinBox> 28 #include <QtWidgets/QToolBar> 29 #include <QtWidgets/QToolBox> 30 #include <QtWidgets/QToolButton> 31 #include <QtWidgets/QVBoxLayout> 32 #include <QtWidgets/QWidget> 137 if (MainWindow->objectName().isEmpty())
138 MainWindow->setObjectName(QStringLiteral(
"MainWindow"));
139 MainWindow->resize(1008, 600);
140 actionHelp =
new QAction(MainWindow);
141 actionHelp->setObjectName(QStringLiteral(
"actionHelp"));
142 actionReset_camera =
new QAction(MainWindow);
143 actionReset_camera->setObjectName(QStringLiteral(
"actionReset_camera"));
144 actionToggle_coloring =
new QAction(MainWindow);
145 actionToggle_coloring->setObjectName(QStringLiteral(
"actionToggle_coloring"));
146 actionMesh_representation =
new QAction(MainWindow);
147 actionMesh_representation->setObjectName(QStringLiteral(
"actionMesh_representation"));
148 actionSaveAs =
new QAction(MainWindow);
149 actionSaveAs->setObjectName(QStringLiteral(
"actionSaveAs"));
150 centralWidget =
new QWidget(MainWindow);
151 centralWidget->setObjectName(QStringLiteral(
"centralWidget"));
152 gridLayout_7 =
new QGridLayout(centralWidget);
153 gridLayout_7->setSpacing(6);
154 gridLayout_7->setContentsMargins(11, 11, 11, 11);
155 gridLayout_7->setObjectName(QStringLiteral(
"gridLayout_7"));
156 horizontalLayout_main_controls =
new QHBoxLayout();
157 horizontalLayout_main_controls->setSpacing(6);
158 horizontalLayout_main_controls->setObjectName(QStringLiteral(
"horizontalLayout_main_controls"));
159 toolButton_1 =
new QToolButton(centralWidget);
160 toolButton_1->setObjectName(QStringLiteral(
"toolButton_1"));
161 toolButton_1->setCheckable(
true);
162 toolButton_1->setChecked(
true);
163 toolButton_1->setAutoExclusive(
true);
165 horizontalLayout_main_controls->addWidget(toolButton_1);
167 toolButton_2 =
new QToolButton(centralWidget);
168 toolButton_2->setObjectName(QStringLiteral(
"toolButton_2"));
169 toolButton_2->setCheckable(
true);
170 toolButton_2->setChecked(
false);
171 toolButton_2->setAutoExclusive(
true);
173 horizontalLayout_main_controls->addWidget(toolButton_2);
175 toolButton_3 =
new QToolButton(centralWidget);
176 toolButton_3->setObjectName(QStringLiteral(
"toolButton_3"));
177 toolButton_3->setCheckable(
true);
178 toolButton_3->setAutoExclusive(
true);
180 horizontalLayout_main_controls->addWidget(toolButton_3);
182 toolButton_4 =
new QToolButton(centralWidget);
183 toolButton_4->setObjectName(QStringLiteral(
"toolButton_4"));
184 toolButton_4->setCheckable(
true);
185 toolButton_4->setAutoExclusive(
true);
187 horizontalLayout_main_controls->addWidget(toolButton_4);
189 toolButton_5 =
new QToolButton(centralWidget);
190 toolButton_5->setObjectName(QStringLiteral(
"toolButton_5"));
191 toolButton_5->setCheckable(
true);
192 toolButton_5->setAutoExclusive(
true);
194 horizontalLayout_main_controls->addWidget(toolButton_5);
196 toolButton_6 =
new QToolButton(centralWidget);
197 toolButton_6->setObjectName(QStringLiteral(
"toolButton_6"));
198 toolButton_6->setCheckable(
false);
199 toolButton_6->setAutoExclusive(
false);
201 horizontalLayout_main_controls->addWidget(toolButton_6);
203 horizontalSpacer_main_controls =
new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
205 horizontalLayout_main_controls->addItem(horizontalSpacer_main_controls);
207 toolButton_0 =
new QToolButton(centralWidget);
208 toolButton_0->setObjectName(QStringLiteral(
"toolButton_0"));
209 toolButton_0->setCheckable(
false);
210 toolButton_0->setAutoExclusive(
false);
212 horizontalLayout_main_controls->addWidget(toolButton_0);
215 gridLayout_7->addLayout(horizontalLayout_main_controls, 0, 0, 1, 1);
217 placeholder_in_hand_scanner =
new QWidget(centralWidget);
218 placeholder_in_hand_scanner->setObjectName(QStringLiteral(
"placeholder_in_hand_scanner"));
219 QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
220 sizePolicy.setHorizontalStretch(0);
221 sizePolicy.setVerticalStretch(0);
222 sizePolicy.setHeightForWidth(placeholder_in_hand_scanner->sizePolicy().hasHeightForWidth());
223 placeholder_in_hand_scanner->setSizePolicy(sizePolicy);
225 gridLayout_7->addWidget(placeholder_in_hand_scanner, 1, 0, 1, 1);
227 MainWindow->setCentralWidget(centralWidget);
228 dockWidget =
new QDockWidget(MainWindow);
229 dockWidget->setObjectName(QStringLiteral(
"dockWidget"));
230 QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
231 sizePolicy1.setHorizontalStretch(0);
232 sizePolicy1.setVerticalStretch(0);
233 sizePolicy1.setHeightForWidth(dockWidget->sizePolicy().hasHeightForWidth());
234 dockWidget->setSizePolicy(sizePolicy1);
235 dockWidget->setMinimumSize(QSize(324, 228));
236 dockWidget->setFeatures(QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable);
237 dockWidgetContents =
new QWidget();
238 dockWidgetContents->setObjectName(QStringLiteral(
"dockWidgetContents"));
239 verticalLayout =
new QVBoxLayout(dockWidgetContents);
240 verticalLayout->setSpacing(6);
241 verticalLayout->setContentsMargins(11, 11, 11, 11);
242 verticalLayout->setObjectName(QStringLiteral(
"verticalLayout"));
243 toolBox =
new QToolBox(dockWidgetContents);
244 toolBox->setObjectName(QStringLiteral(
"toolBox"));
245 toolBox->setMinimumSize(QSize(0, 0));
246 page_input_data_processing =
new QWidget();
247 page_input_data_processing->setObjectName(QStringLiteral(
"page_input_data_processing"));
248 page_input_data_processing->setGeometry(QRect(0, 0, 300, 408));
249 verticalLayout_2 =
new QVBoxLayout(page_input_data_processing);
250 verticalLayout_2->setSpacing(6);
251 verticalLayout_2->setContentsMargins(11, 11, 11, 11);
252 verticalLayout_2->setObjectName(QStringLiteral(
"verticalLayout_2"));
253 groupBox_crop_xyz =
new QGroupBox(page_input_data_processing);
254 groupBox_crop_xyz->setObjectName(QStringLiteral(
"groupBox_crop_xyz"));
255 gridLayout_3 =
new QGridLayout(groupBox_crop_xyz);
256 gridLayout_3->setSpacing(6);
257 gridLayout_3->setContentsMargins(11, 11, 11, 11);
258 gridLayout_3->setObjectName(QStringLiteral(
"gridLayout_3"));
259 spinBox_y_max =
new QSpinBox(groupBox_crop_xyz);
260 spinBox_y_max->setObjectName(QStringLiteral(
"spinBox_y_max"));
261 spinBox_y_max->setMinimum(-100);
262 spinBox_y_max->setMaximum(100);
263 spinBox_y_max->setSingleStep(5);
265 gridLayout_3->addWidget(spinBox_y_max, 1, 3, 1, 1);
267 label_z_min =
new QLabel(groupBox_crop_xyz);
268 label_z_min->setObjectName(QStringLiteral(
"label_z_min"));
270 gridLayout_3->addWidget(label_z_min, 2, 0, 1, 1);
272 spinBox_x_max =
new QSpinBox(groupBox_crop_xyz);
273 spinBox_x_max->setObjectName(QStringLiteral(
"spinBox_x_max"));
274 spinBox_x_max->setMinimum(-100);
275 spinBox_x_max->setMaximum(100);
276 spinBox_x_max->setSingleStep(5);
278 gridLayout_3->addWidget(spinBox_x_max, 0, 3, 1, 1);
280 spinBox_y_min =
new QSpinBox(groupBox_crop_xyz);
281 spinBox_y_min->setObjectName(QStringLiteral(
"spinBox_y_min"));
282 spinBox_y_min->setMinimum(-100);
283 spinBox_y_min->setMaximum(100);
284 spinBox_y_min->setSingleStep(5);
286 gridLayout_3->addWidget(spinBox_y_min, 1, 1, 1, 1);
288 label_x_min =
new QLabel(groupBox_crop_xyz);
289 label_x_min->setObjectName(QStringLiteral(
"label_x_min"));
291 gridLayout_3->addWidget(label_x_min, 0, 0, 1, 1);
293 spinBox_z_max =
new QSpinBox(groupBox_crop_xyz);
294 spinBox_z_max->setObjectName(QStringLiteral(
"spinBox_z_max"));
295 spinBox_z_max->setMinimum(0);
296 spinBox_z_max->setMaximum(1000);
297 spinBox_z_max->setSingleStep(5);
299 gridLayout_3->addWidget(spinBox_z_max, 2, 3, 1, 1);
301 spinBox_x_min =
new QSpinBox(groupBox_crop_xyz);
302 spinBox_x_min->setObjectName(QStringLiteral(
"spinBox_x_min"));
303 spinBox_x_min->setMinimum(-100);
304 spinBox_x_min->setMaximum(100);
305 spinBox_x_min->setSingleStep(5);
307 gridLayout_3->addWidget(spinBox_x_min, 0, 1, 1, 1);
309 label_xyz_erode_size =
new QLabel(groupBox_crop_xyz);
310 label_xyz_erode_size->setObjectName(QStringLiteral(
"label_xyz_erode_size"));
312 gridLayout_3->addWidget(label_xyz_erode_size, 3, 0, 1, 2);
314 label_y_min =
new QLabel(groupBox_crop_xyz);
315 label_y_min->setObjectName(QStringLiteral(
"label_y_min"));
317 gridLayout_3->addWidget(label_y_min, 1, 0, 1, 1);
319 label_x_max =
new QLabel(groupBox_crop_xyz);
320 label_x_max->setObjectName(QStringLiteral(
"label_x_max"));
322 gridLayout_3->addWidget(label_x_max, 0, 2, 1, 1);
324 spinBox_z_min =
new QSpinBox(groupBox_crop_xyz);
325 spinBox_z_min->setObjectName(QStringLiteral(
"spinBox_z_min"));
326 spinBox_z_min->setMinimum(0);
327 spinBox_z_min->setMaximum(1000);
328 spinBox_z_min->setSingleStep(5);
330 gridLayout_3->addWidget(spinBox_z_min, 2, 1, 1, 1);
332 label_y_max =
new QLabel(groupBox_crop_xyz);
333 label_y_max->setObjectName(QStringLiteral(
"label_y_max"));
335 gridLayout_3->addWidget(label_y_max, 1, 2, 1, 1);
337 label_z_max =
new QLabel(groupBox_crop_xyz);
338 label_z_max->setObjectName(QStringLiteral(
"label_z_max"));
340 gridLayout_3->addWidget(label_z_max, 2, 2, 1, 1);
342 spinBox_xyz_erode_size =
new QSpinBox(groupBox_crop_xyz);
343 spinBox_xyz_erode_size->setObjectName(QStringLiteral(
"spinBox_xyz_erode_size"));
344 spinBox_xyz_erode_size->setMaximum(50);
346 gridLayout_3->addWidget(spinBox_xyz_erode_size, 3, 2, 1, 2);
349 verticalLayout_2->addWidget(groupBox_crop_xyz);
351 groupBox_segment_hsv =
new QGroupBox(page_input_data_processing);
352 groupBox_segment_hsv->setObjectName(QStringLiteral(
"groupBox_segment_hsv"));
353 gridLayout =
new QGridLayout(groupBox_segment_hsv);
354 gridLayout->setSpacing(6);
355 gridLayout->setContentsMargins(11, 11, 11, 11);
356 gridLayout->setObjectName(QStringLiteral(
"gridLayout"));
357 spinBox_h_max =
new QSpinBox(groupBox_segment_hsv);
358 spinBox_h_max->setObjectName(QStringLiteral(
"spinBox_h_max"));
359 spinBox_h_max->setMaximum(360);
360 spinBox_h_max->setSingleStep(5);
362 gridLayout->addWidget(spinBox_h_max, 0, 3, 1, 1);
364 label_s_max =
new QLabel(groupBox_segment_hsv);
365 label_s_max->setObjectName(QStringLiteral(
"label_s_max"));
367 gridLayout->addWidget(label_s_max, 1, 2, 1, 1);
369 spinBox_s_min =
new QSpinBox(groupBox_segment_hsv);
370 spinBox_s_min->setObjectName(QStringLiteral(
"spinBox_s_min"));
371 spinBox_s_min->setMaximum(100);
372 spinBox_s_min->setSingleStep(5);
374 gridLayout->addWidget(spinBox_s_min, 1, 1, 1, 1);
376 label_h_min =
new QLabel(groupBox_segment_hsv);
377 label_h_min->setObjectName(QStringLiteral(
"label_h_min"));
379 gridLayout->addWidget(label_h_min, 0, 0, 1, 1);
381 label_h_max =
new QLabel(groupBox_segment_hsv);
382 label_h_max->setObjectName(QStringLiteral(
"label_h_max"));
384 gridLayout->addWidget(label_h_max, 0, 2, 1, 1);
386 label_s_min =
new QLabel(groupBox_segment_hsv);
387 label_s_min->setObjectName(QStringLiteral(
"label_s_min"));
389 gridLayout->addWidget(label_s_min, 1, 0, 1, 1);
391 spinBox_v_min =
new QSpinBox(groupBox_segment_hsv);
392 spinBox_v_min->setObjectName(QStringLiteral(
"spinBox_v_min"));
393 spinBox_v_min->setMaximum(100);
394 spinBox_v_min->setSingleStep(5);
396 gridLayout->addWidget(spinBox_v_min, 2, 1, 1, 1);
398 label_v_min =
new QLabel(groupBox_segment_hsv);
399 label_v_min->setObjectName(QStringLiteral(
"label_v_min"));
401 gridLayout->addWidget(label_v_min, 2, 0, 1, 1);
403 spinBox_v_max =
new QSpinBox(groupBox_segment_hsv);
404 spinBox_v_max->setObjectName(QStringLiteral(
"spinBox_v_max"));
405 spinBox_v_max->setMaximum(100);
406 spinBox_v_max->setSingleStep(5);
408 gridLayout->addWidget(spinBox_v_max, 2, 3, 1, 1);
410 spinBox_h_min =
new QSpinBox(groupBox_segment_hsv);
411 spinBox_h_min->setObjectName(QStringLiteral(
"spinBox_h_min"));
412 spinBox_h_min->setMaximum(360);
413 spinBox_h_min->setSingleStep(5);
415 gridLayout->addWidget(spinBox_h_min, 0, 1, 1, 1);
417 label_v_max =
new QLabel(groupBox_segment_hsv);
418 label_v_max->setObjectName(QStringLiteral(
"label_v_max"));
420 gridLayout->addWidget(label_v_max, 2, 2, 1, 1);
422 spinBox_s_max =
new QSpinBox(groupBox_segment_hsv);
423 spinBox_s_max->setObjectName(QStringLiteral(
"spinBox_s_max"));
424 spinBox_s_max->setMaximum(100);
425 spinBox_s_max->setSingleStep(5);
427 gridLayout->addWidget(spinBox_s_max, 1, 3, 1, 1);
429 label_hsv_dilate_size =
new QLabel(groupBox_segment_hsv);
430 label_hsv_dilate_size->setObjectName(QStringLiteral(
"label_hsv_dilate_size"));
432 gridLayout->addWidget(label_hsv_dilate_size, 3, 0, 1, 2);
434 spinBox_hsv_dilate_size =
new QSpinBox(groupBox_segment_hsv);
435 spinBox_hsv_dilate_size->setObjectName(QStringLiteral(
"spinBox_hsv_dilate_size"));
436 spinBox_hsv_dilate_size->setMaximum(50);
438 gridLayout->addWidget(spinBox_hsv_dilate_size, 3, 2, 1, 2);
440 checkBox_color_segmentation_inverted =
new QCheckBox(groupBox_segment_hsv);
441 checkBox_color_segmentation_inverted->setObjectName(QStringLiteral(
"checkBox_color_segmentation_inverted"));
443 gridLayout->addWidget(checkBox_color_segmentation_inverted, 4, 0, 1, 2);
445 checkBox_color_segmentation_enabled =
new QCheckBox(groupBox_segment_hsv);
446 checkBox_color_segmentation_enabled->setObjectName(QStringLiteral(
"checkBox_color_segmentation_enabled"));
448 gridLayout->addWidget(checkBox_color_segmentation_enabled, 4, 2, 1, 1);
450 spinBox_h_min->raise();
451 label_s_min->raise();
452 spinBox_v_min->raise();
453 spinBox_v_max->raise();
454 label_s_max->raise();
455 label_v_max->raise();
456 spinBox_h_max->raise();
457 label_h_min->raise();
458 label_h_max->raise();
459 label_v_min->raise();
460 spinBox_s_max->raise();
461 spinBox_s_min->raise();
462 checkBox_color_segmentation_inverted->raise();
463 label_hsv_dilate_size->raise();
464 spinBox_hsv_dilate_size->raise();
465 checkBox_color_segmentation_enabled->raise();
467 verticalLayout_2->addWidget(groupBox_segment_hsv);
469 verticalSpacer_input_data_processing =
new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
471 verticalLayout_2->addItem(verticalSpacer_input_data_processing);
473 toolBox->addItem(page_input_data_processing, QStringLiteral(
"Input data processing"));
474 page_registration =
new QWidget();
475 page_registration->setObjectName(QStringLiteral(
"page_registration"));
476 page_registration->setGeometry(QRect(0, 0, 300, 401));
477 verticalLayout_3 =
new QVBoxLayout(page_registration);
478 verticalLayout_3->setSpacing(6);
479 verticalLayout_3->setContentsMargins(11, 11, 11, 11);
480 verticalLayout_3->setObjectName(QStringLiteral(
"verticalLayout_3"));
481 groupBox_convergence =
new QGroupBox(page_registration);
482 groupBox_convergence->setObjectName(QStringLiteral(
"groupBox_convergence"));
483 gridLayout_4 =
new QGridLayout(groupBox_convergence);
484 gridLayout_4->setSpacing(6);
485 gridLayout_4->setContentsMargins(11, 11, 11, 11);
486 gridLayout_4->setObjectName(QStringLiteral(
"gridLayout_4"));
487 label_epsilon =
new QLabel(groupBox_convergence);
488 label_epsilon->setObjectName(QStringLiteral(
"label_epsilon"));
490 gridLayout_4->addWidget(label_epsilon, 0, 0, 1, 1);
492 label_max_iterations =
new QLabel(groupBox_convergence);
493 label_max_iterations->setObjectName(QStringLiteral(
"label_max_iterations"));
495 gridLayout_4->addWidget(label_max_iterations, 1, 0, 1, 1);
497 label_min_overlap =
new QLabel(groupBox_convergence);
498 label_min_overlap->setObjectName(QStringLiteral(
"label_min_overlap"));
500 gridLayout_4->addWidget(label_min_overlap, 2, 0, 1, 1);
502 label_max_fitness =
new QLabel(groupBox_convergence);
503 label_max_fitness->setObjectName(QStringLiteral(
"label_max_fitness"));
505 gridLayout_4->addWidget(label_max_fitness, 3, 0, 1, 1);
507 spinBox_max_iterations =
new QSpinBox(groupBox_convergence);
508 spinBox_max_iterations->setObjectName(QStringLiteral(
"spinBox_max_iterations"));
509 spinBox_max_iterations->setMinimum(1);
510 spinBox_max_iterations->setMaximum(500);
512 gridLayout_4->addWidget(spinBox_max_iterations, 1, 1, 1, 1);
514 spinBox_min_overlap =
new QSpinBox(groupBox_convergence);
515 spinBox_min_overlap->setObjectName(QStringLiteral(
"spinBox_min_overlap"));
516 spinBox_min_overlap->setMaximum(100);
518 gridLayout_4->addWidget(spinBox_min_overlap, 2, 1, 1, 1);
520 lineEdit_epsilon =
new QLineEdit(groupBox_convergence);
521 lineEdit_epsilon->setObjectName(QStringLiteral(
"lineEdit_epsilon"));
523 gridLayout_4->addWidget(lineEdit_epsilon, 0, 1, 1, 1);
525 lineEdit_max_fitness =
new QLineEdit(groupBox_convergence);
526 lineEdit_max_fitness->setObjectName(QStringLiteral(
"lineEdit_max_fitness"));
528 gridLayout_4->addWidget(lineEdit_max_fitness, 3, 1, 1, 1);
531 verticalLayout_3->addWidget(groupBox_convergence);
533 groupBox_correspondence_rejection =
new QGroupBox(page_registration);
534 groupBox_correspondence_rejection->setObjectName(QStringLiteral(
"groupBox_correspondence_rejection"));
535 gridLayout_2 =
new QGridLayout(groupBox_correspondence_rejection);
536 gridLayout_2->setSpacing(6);
537 gridLayout_2->setContentsMargins(11, 11, 11, 11);
538 gridLayout_2->setObjectName(QStringLiteral(
"gridLayout_2"));
539 label_correspondence_rejection_factor =
new QLabel(groupBox_correspondence_rejection);
540 label_correspondence_rejection_factor->setObjectName(QStringLiteral(
"label_correspondence_rejection_factor"));
542 gridLayout_2->addWidget(label_correspondence_rejection_factor, 0, 0, 1, 1);
544 doubleSpinBox_correspondence_rejection_factor =
new QDoubleSpinBox(groupBox_correspondence_rejection);
545 doubleSpinBox_correspondence_rejection_factor->setObjectName(QStringLiteral(
"doubleSpinBox_correspondence_rejection_factor"));
546 doubleSpinBox_correspondence_rejection_factor->setMinimum(1);
547 doubleSpinBox_correspondence_rejection_factor->setMaximum(100);
549 gridLayout_2->addWidget(doubleSpinBox_correspondence_rejection_factor, 0, 1, 1, 1);
551 label_correspondence_rejection_max_angle =
new QLabel(groupBox_correspondence_rejection);
552 label_correspondence_rejection_max_angle->setObjectName(QStringLiteral(
"label_correspondence_rejection_max_angle"));
554 gridLayout_2->addWidget(label_correspondence_rejection_max_angle, 1, 0, 1, 1);
556 spinBox_correspondence_rejection_max_angle =
new QSpinBox(groupBox_correspondence_rejection);
557 spinBox_correspondence_rejection_max_angle->setObjectName(QStringLiteral(
"spinBox_correspondence_rejection_max_angle"));
558 spinBox_correspondence_rejection_max_angle->setMaximum(180);
560 gridLayout_2->addWidget(spinBox_correspondence_rejection_max_angle, 1, 1, 1, 1);
563 verticalLayout_3->addWidget(groupBox_correspondence_rejection);
565 verticalSpacer_registration =
new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
567 verticalLayout_3->addItem(verticalSpacer_registration);
569 toolBox->addItem(page_registration, QStringLiteral(
"Registration"));
570 page_integration =
new QWidget();
571 page_integration->setObjectName(QStringLiteral(
"page_integration"));
572 page_integration->setGeometry(QRect(0, 0, 300, 401));
573 verticalLayout_4 =
new QVBoxLayout(page_integration);
574 verticalLayout_4->setSpacing(6);
575 verticalLayout_4->setContentsMargins(11, 11, 11, 11);
576 verticalLayout_4->setObjectName(QStringLiteral(
"verticalLayout_4"));
577 groupBox_averaging =
new QGroupBox(page_integration);
578 groupBox_averaging->setObjectName(QStringLiteral(
"groupBox_averaging"));
579 gridLayout_5 =
new QGridLayout(groupBox_averaging);
580 gridLayout_5->setSpacing(6);
581 gridLayout_5->setContentsMargins(11, 11, 11, 11);
582 gridLayout_5->setObjectName(QStringLiteral(
"gridLayout_5"));
583 label_max_squared_distance =
new QLabel(groupBox_averaging);
584 label_max_squared_distance->setObjectName(QStringLiteral(
"label_max_squared_distance"));
586 gridLayout_5->addWidget(label_max_squared_distance, 0, 0, 1, 1);
588 lineEdit_max_squared_distance =
new QLineEdit(groupBox_averaging);
589 lineEdit_max_squared_distance->setObjectName(QStringLiteral(
"lineEdit_max_squared_distance"));
591 gridLayout_5->addWidget(lineEdit_max_squared_distance, 0, 1, 1, 1);
593 label_averaging_max_angle =
new QLabel(groupBox_averaging);
594 label_averaging_max_angle->setObjectName(QStringLiteral(
"label_averaging_max_angle"));
596 gridLayout_5->addWidget(label_averaging_max_angle, 1, 0, 1, 1);
598 spinBox_averaging_max_angle =
new QSpinBox(groupBox_averaging);
599 spinBox_averaging_max_angle->setObjectName(QStringLiteral(
"spinBox_averaging_max_angle"));
600 spinBox_averaging_max_angle->setMaximum(180);
602 gridLayout_5->addWidget(spinBox_averaging_max_angle, 1, 1, 1, 1);
605 verticalLayout_4->addWidget(groupBox_averaging);
607 groupBox_outlier_removal =
new QGroupBox(page_integration);
608 groupBox_outlier_removal->setObjectName(QStringLiteral(
"groupBox_outlier_removal"));
609 gridLayout_6 =
new QGridLayout(groupBox_outlier_removal);
610 gridLayout_6->setSpacing(6);
611 gridLayout_6->setContentsMargins(11, 11, 11, 11);
612 gridLayout_6->setObjectName(QStringLiteral(
"gridLayout_6"));
613 label_max_age =
new QLabel(groupBox_outlier_removal);
614 label_max_age->setObjectName(QStringLiteral(
"label_max_age"));
616 gridLayout_6->addWidget(label_max_age, 0, 0, 1, 1);
618 spinBox_max_age =
new QSpinBox(groupBox_outlier_removal);
619 spinBox_max_age->setObjectName(QStringLiteral(
"spinBox_max_age"));
620 spinBox_max_age->setMinimum(1);
621 spinBox_max_age->setMaximum(100);
623 gridLayout_6->addWidget(spinBox_max_age, 0, 1, 1, 1);
625 label_min_directions =
new QLabel(groupBox_outlier_removal);
626 label_min_directions->setObjectName(QStringLiteral(
"label_min_directions"));
628 gridLayout_6->addWidget(label_min_directions, 1, 0, 1, 1);
630 spinBox_min_directions =
new QSpinBox(groupBox_outlier_removal);
631 spinBox_min_directions->setObjectName(QStringLiteral(
"spinBox_min_directions"));
632 spinBox_min_directions->setMinimum(1);
633 spinBox_min_directions->setMaximum(100);
635 gridLayout_6->addWidget(spinBox_min_directions, 1, 1, 1, 1);
638 verticalLayout_4->addWidget(groupBox_outlier_removal);
640 verticalSpacer_integration =
new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
642 verticalLayout_4->addItem(verticalSpacer_integration);
644 toolBox->addItem(page_integration, QStringLiteral(
"Integration"));
646 verticalLayout->addWidget(toolBox);
648 dockWidget->setWidget(dockWidgetContents);
649 MainWindow->addDockWidget(static_cast<Qt::DockWidgetArea>(2), dockWidget);
650 toolBar =
new QToolBar(MainWindow);
651 toolBar->setObjectName(QStringLiteral(
"toolBar"));
652 MainWindow->addToolBar(Qt::TopToolBarArea, toolBar);
653 menuBar =
new QMenuBar(MainWindow);
654 menuBar->setObjectName(QStringLiteral(
"menuBar"));
655 menuBar->setGeometry(QRect(0, 0, 1008, 22));
656 menuFile =
new QMenu(menuBar);
657 menuFile->setObjectName(QStringLiteral(
"menuFile"));
658 MainWindow->setMenuBar(menuBar);
659 #ifndef QT_NO_SHORTCUT 660 label_z_min->setBuddy(spinBox_z_min);
661 label_x_min->setBuddy(spinBox_x_min);
662 label_xyz_erode_size->setBuddy(spinBox_xyz_erode_size);
663 label_y_min->setBuddy(spinBox_y_min);
664 label_x_max->setBuddy(spinBox_x_max);
665 label_y_max->setBuddy(spinBox_y_max);
666 label_z_max->setBuddy(spinBox_z_max);
667 label_s_max->setBuddy(spinBox_s_max);
668 label_h_min->setBuddy(spinBox_h_min);
669 label_h_max->setBuddy(spinBox_h_max);
670 label_s_min->setBuddy(spinBox_s_min);
671 label_v_min->setBuddy(spinBox_v_min);
672 label_v_max->setBuddy(spinBox_v_max);
673 label_hsv_dilate_size->setBuddy(spinBox_hsv_dilate_size);
674 label_max_iterations->setBuddy(spinBox_max_iterations);
675 label_min_overlap->setBuddy(spinBox_min_overlap);
676 label_correspondence_rejection_factor->setBuddy(doubleSpinBox_correspondence_rejection_factor);
677 label_correspondence_rejection_max_angle->setBuddy(spinBox_correspondence_rejection_max_angle);
678 #endif // QT_NO_SHORTCUT 679 QWidget::setTabOrder(toolButton_1, toolButton_2);
680 QWidget::setTabOrder(toolButton_2, toolButton_3);
681 QWidget::setTabOrder(toolButton_3, toolButton_4);
682 QWidget::setTabOrder(toolButton_4, toolButton_5);
683 QWidget::setTabOrder(toolButton_5, toolButton_0);
684 QWidget::setTabOrder(toolButton_0, spinBox_x_min);
685 QWidget::setTabOrder(spinBox_x_min, spinBox_x_max);
686 QWidget::setTabOrder(spinBox_x_max, spinBox_y_min);
687 QWidget::setTabOrder(spinBox_y_min, spinBox_y_max);
688 QWidget::setTabOrder(spinBox_y_max, spinBox_z_min);
689 QWidget::setTabOrder(spinBox_z_min, spinBox_z_max);
690 QWidget::setTabOrder(spinBox_z_max, spinBox_xyz_erode_size);
691 QWidget::setTabOrder(spinBox_xyz_erode_size, spinBox_h_min);
692 QWidget::setTabOrder(spinBox_h_min, spinBox_h_max);
693 QWidget::setTabOrder(spinBox_h_max, spinBox_s_min);
694 QWidget::setTabOrder(spinBox_s_min, spinBox_s_max);
695 QWidget::setTabOrder(spinBox_s_max, spinBox_v_min);
696 QWidget::setTabOrder(spinBox_v_min, spinBox_v_max);
697 QWidget::setTabOrder(spinBox_v_max, spinBox_hsv_dilate_size);
698 QWidget::setTabOrder(spinBox_hsv_dilate_size, checkBox_color_segmentation_inverted);
699 QWidget::setTabOrder(checkBox_color_segmentation_inverted, checkBox_color_segmentation_enabled);
700 QWidget::setTabOrder(checkBox_color_segmentation_enabled, lineEdit_epsilon);
701 QWidget::setTabOrder(lineEdit_epsilon, spinBox_max_iterations);
702 QWidget::setTabOrder(spinBox_max_iterations, spinBox_min_overlap);
703 QWidget::setTabOrder(spinBox_min_overlap, lineEdit_max_fitness);
704 QWidget::setTabOrder(lineEdit_max_fitness, doubleSpinBox_correspondence_rejection_factor);
705 QWidget::setTabOrder(doubleSpinBox_correspondence_rejection_factor, spinBox_correspondence_rejection_max_angle);
706 QWidget::setTabOrder(spinBox_correspondence_rejection_max_angle, lineEdit_max_squared_distance);
707 QWidget::setTabOrder(lineEdit_max_squared_distance, spinBox_averaging_max_angle);
708 QWidget::setTabOrder(spinBox_averaging_max_angle, spinBox_max_age);
709 QWidget::setTabOrder(spinBox_max_age, spinBox_min_directions);
711 toolBar->addAction(actionReset_camera);
712 toolBar->addAction(actionToggle_coloring);
713 toolBar->addAction(actionMesh_representation);
714 toolBar->addAction(actionHelp);
715 menuBar->addAction(menuFile->menuAction());
716 menuFile->addAction(actionSaveAs);
719 QObject::connect(spinBox_x_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setXMin(
int)));
720 QObject::connect(spinBox_x_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setXMax(
int)));
721 QObject::connect(spinBox_y_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setYMin(
int)));
722 QObject::connect(spinBox_y_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setYMax(
int)));
723 QObject::connect(spinBox_z_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setZMin(
int)));
724 QObject::connect(spinBox_z_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setZMax(
int)));
725 QObject::connect(spinBox_h_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setHMin(
int)));
726 QObject::connect(spinBox_h_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setHMax(
int)));
727 QObject::connect(spinBox_s_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setSMin(
int)));
728 QObject::connect(spinBox_s_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setSMax(
int)));
729 QObject::connect(spinBox_v_min, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setVMin(
int)));
730 QObject::connect(spinBox_v_max, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setVMax(
int)));
731 QObject::connect(checkBox_color_segmentation_inverted, SIGNAL(toggled(
bool)), MainWindow, SLOT(setColorSegmentationInverted(
bool)));
732 QObject::connect(spinBox_xyz_erode_size, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setXYZErodeSize(
int)));
733 QObject::connect(spinBox_hsv_dilate_size, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setHSVDilateSize(
int)));
734 QObject::connect(lineEdit_epsilon, SIGNAL(editingFinished()), MainWindow, SLOT(setEpsilon()));
735 QObject::connect(spinBox_max_iterations, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setMaxIterations(
int)));
736 QObject::connect(spinBox_min_overlap, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setMinOverlap(
int)));
737 QObject::connect(lineEdit_max_fitness, SIGNAL(editingFinished()), MainWindow, SLOT(setMaxFitness()));
738 QObject::connect(doubleSpinBox_correspondence_rejection_factor, SIGNAL(valueChanged(
double)), MainWindow, SLOT(setCorrespondenceRejectionFactor(
double)));
739 QObject::connect(spinBox_correspondence_rejection_max_angle, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setCorrespondenceRejectionMaxAngle(
int)));
740 QObject::connect(lineEdit_max_squared_distance, SIGNAL(editingFinished()), MainWindow, SLOT(setMaxSquaredDistance()));
741 QObject::connect(spinBox_averaging_max_angle, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setAveragingMaxAngle(
int)));
742 QObject::connect(spinBox_max_age, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setMaxAge(
int)));
743 QObject::connect(spinBox_min_directions, SIGNAL(valueChanged(
int)), MainWindow, SLOT(setMinDirections(
int)));
744 QObject::connect(checkBox_color_segmentation_enabled, SIGNAL(toggled(
bool)), MainWindow, SLOT(setColorSegmentationEnabled(
bool)));
746 toolBox->setCurrentIndex(0);
749 QMetaObject::connectSlotsByName(MainWindow);
754 MainWindow->setWindowTitle(QApplication::translate(
"MainWindow",
"MainWindow",
nullptr));
755 actionHelp->setText(QApplication::translate(
"MainWindow",
"Help",
nullptr));
756 actionReset_camera->setText(QApplication::translate(
"MainWindow",
"Reset camera",
nullptr));
757 #ifndef QT_NO_TOOLTIP 758 actionReset_camera->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Reset the camera (Shortcut: c)</p></body></html>",
nullptr));
759 #endif // QT_NO_TOOLTIP 760 actionToggle_coloring->setText(QApplication::translate(
"MainWindow",
"Coloring",
nullptr));
761 #ifndef QT_NO_TOOLTIP 762 actionToggle_coloring->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Toggle the coloring (Shortcut: k):</p><p>- RGB</p><p>- One color</p><p>- Visibility-confidence</p></body></html>",
nullptr));
763 #endif // QT_NO_TOOLTIP 764 actionMesh_representation->setText(QApplication::translate(
"MainWindow",
"Mesh representation",
nullptr));
765 #ifndef QT_NO_TOOLTIP 766 actionMesh_representation->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Toggle the display of the mesh (Shortcut: s):</p><p>- Points</p><p>- Wireframe</p><p>- Closed surface</p></body></html>",
nullptr));
767 #endif // QT_NO_TOOLTIP 768 actionSaveAs->setText(QApplication::translate(
"MainWindow",
"Save As ...",
nullptr));
769 #ifndef QT_NO_SHORTCUT 770 actionSaveAs->setShortcut(QApplication::translate(
"MainWindow",
"Ctrl+S",
nullptr));
771 #endif // QT_NO_SHORTCUT 772 #ifndef QT_NO_TOOLTIP 773 toolButton_1->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Shows the unprocessed input data (Shortcut: 1).</p></body></html>",
nullptr));
774 #endif // QT_NO_TOOLTIP 775 toolButton_1->setText(QApplication::translate(
"MainWindow",
"Input",
nullptr));
776 #ifndef QT_NO_TOOLTIP 777 toolButton_2->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Shows the processed input data (Shortcut: 2).</p></body></html>",
nullptr));
778 #endif // QT_NO_TOOLTIP 779 toolButton_2->setText(QApplication::translate(
"MainWindow",
"Processed",
nullptr));
780 #ifndef QT_NO_TOOLTIP 781 toolButton_3->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Continuous registration (Shortcut: 3).</p></body></html>",
nullptr));
782 #endif // QT_NO_TOOLTIP 783 toolButton_3->setText(QApplication::translate(
"MainWindow",
"Continuous registration",
nullptr));
784 #ifndef QT_NO_TOOLTIP 785 toolButton_4->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Registers new data once and returns to showing the processed input data (Shortcut: 4).</p></body></html>",
nullptr));
786 #endif // QT_NO_TOOLTIP 787 toolButton_4->setText(QApplication::translate(
"MainWindow",
"Single registration",
nullptr));
788 #ifndef QT_NO_TOOLTIP 789 toolButton_5->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Shows the acquired model (Shortcut: 5).</p></body></html>",
nullptr));
790 #endif // QT_NO_TOOLTIP 791 toolButton_5->setText(QApplication::translate(
"MainWindow",
"Show model",
nullptr));
792 #ifndef QT_NO_TOOLTIP 793 toolButton_6->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Removes all unfit points (Shortcut: 6)</p></body></html>",
nullptr));
794 #endif // QT_NO_TOOLTIP 795 toolButton_6->setText(QApplication::translate(
"MainWindow",
"Clean",
nullptr));
796 #ifndef QT_NO_TOOLTIP 797 toolButton_0->setToolTip(QApplication::translate(
"MainWindow",
"<html><head/><body><p>Reset the scanning pipeline (Shortcut: 0).</p></body></html>",
nullptr));
798 #endif // QT_NO_TOOLTIP 799 toolButton_0->setText(QApplication::translate(
"MainWindow",
"Reset",
nullptr));
800 dockWidget->setWindowTitle(QApplication::translate(
"MainWindow",
"Settings",
nullptr));
801 #ifndef QT_NO_TOOLTIP 802 toolBox->setToolTip(QString());
803 #endif // QT_NO_TOOLTIP 804 #ifndef QT_NO_TOOLTIP 805 groupBox_crop_xyz->setToolTip(QString());
806 #endif // QT_NO_TOOLTIP 807 groupBox_crop_xyz->setTitle(QApplication::translate(
"MainWindow",
"Crop coordinates",
nullptr));
808 label_z_min->setText(QApplication::translate(
"MainWindow",
"z min",
nullptr));
809 label_x_min->setText(QApplication::translate(
"MainWindow",
"x min",
nullptr));
810 label_xyz_erode_size->setText(QApplication::translate(
"MainWindow",
"Erode size",
nullptr));
811 label_y_min->setText(QApplication::translate(
"MainWindow",
"y min",
nullptr));
812 label_x_max->setText(QApplication::translate(
"MainWindow",
"x max",
nullptr));
813 label_y_max->setText(QApplication::translate(
"MainWindow",
"y max",
nullptr));
814 label_z_max->setText(QApplication::translate(
"MainWindow",
"z max",
nullptr));
815 #ifndef QT_NO_TOOLTIP 816 groupBox_segment_hsv->setToolTip(QString());
817 #endif // QT_NO_TOOLTIP 818 groupBox_segment_hsv->setTitle(QApplication::translate(
"MainWindow",
"Color segmentation",
nullptr));
819 label_s_max->setText(QApplication::translate(
"MainWindow",
"S max",
nullptr));
820 label_h_min->setText(QApplication::translate(
"MainWindow",
"H min",
nullptr));
821 label_h_max->setText(QApplication::translate(
"MainWindow",
"H max",
nullptr));
822 label_s_min->setText(QApplication::translate(
"MainWindow",
"S min",
nullptr));
823 label_v_min->setText(QApplication::translate(
"MainWindow",
"V min",
nullptr));
824 label_v_max->setText(QApplication::translate(
"MainWindow",
"V max",
nullptr));
825 label_hsv_dilate_size->setText(QApplication::translate(
"MainWindow",
"Dilate size",
nullptr));
826 checkBox_color_segmentation_inverted->setText(QApplication::translate(
"MainWindow",
"Inverted",
nullptr));
827 checkBox_color_segmentation_enabled->setText(QApplication::translate(
"MainWindow",
"Enabled",
nullptr));
828 toolBox->setItemText(toolBox->indexOf(page_input_data_processing), QApplication::translate(
"MainWindow",
"Input data processing",
nullptr));
829 groupBox_convergence->setTitle(QApplication::translate(
"MainWindow",
"Convergence and failure criteria",
nullptr));
830 label_epsilon->setText(QApplication::translate(
"MainWindow",
"Epsilon",
nullptr));
831 label_max_iterations->setText(QApplication::translate(
"MainWindow",
"Max iterations",
nullptr));
832 label_min_overlap->setText(QApplication::translate(
"MainWindow",
"Min overlap",
nullptr));
833 label_max_fitness->setText(QApplication::translate(
"MainWindow",
"Max fitness",
nullptr));
834 groupBox_correspondence_rejection->setTitle(QApplication::translate(
"MainWindow",
"Correspondence rejection",
nullptr));
835 label_correspondence_rejection_factor->setText(QApplication::translate(
"MainWindow",
"Factor",
nullptr));
836 label_correspondence_rejection_max_angle->setText(QApplication::translate(
"MainWindow",
"Max angle",
nullptr));
837 toolBox->setItemText(toolBox->indexOf(page_registration), QApplication::translate(
"MainWindow",
"Registration",
nullptr));
838 groupBox_averaging->setTitle(QApplication::translate(
"MainWindow",
"Averaging",
nullptr));
839 label_max_squared_distance->setText(QApplication::translate(
"MainWindow",
"Max squared distance",
nullptr));
840 label_averaging_max_angle->setText(QApplication::translate(
"MainWindow",
"Max angle",
nullptr));
841 groupBox_outlier_removal->setTitle(QApplication::translate(
"MainWindow",
"Outlier removal",
nullptr));
842 label_max_age->setText(QApplication::translate(
"MainWindow",
"Max age",
nullptr));
843 label_min_directions->setText(QApplication::translate(
"MainWindow",
"Min directions",
nullptr));
844 toolBox->setItemText(toolBox->indexOf(page_integration), QApplication::translate(
"MainWindow",
"Integration",
nullptr));
845 toolBar->setWindowTitle(QApplication::translate(
"MainWindow",
"toolBar",
nullptr));
846 menuFile->setTitle(QApplication::translate(
"MainWindow",
"File",
nullptr));
857 #endif // UI_MAIN_WINDOW_H
QToolButton * toolButton_5
QToolButton * toolButton_4
QCheckBox * checkBox_color_segmentation_enabled
QSpinBox * spinBox_min_directions
QLabel * label_max_squared_distance
QLineEdit * lineEdit_epsilon
QSpacerItem * horizontalSpacer_main_controls
QWidget * page_integration
QWidget * page_registration
QSpinBox * spinBox_xyz_erode_size
QWidget * page_input_data_processing
QSpacerItem * verticalSpacer_registration
QAction * actionToggle_coloring
QGroupBox * groupBox_averaging
QLabel * label_xyz_erode_size
QSpinBox * spinBox_max_iterations
QToolButton * toolButton_3
QWidget * dockWidgetContents
QHBoxLayout * horizontalLayout_main_controls
QGridLayout * gridLayout_4
QWidget * placeholder_in_hand_scanner
QToolButton * toolButton_6
QToolButton * toolButton_0
void retranslateUi(QMainWindow *MainWindow)
QLineEdit * lineEdit_max_squared_distance
QLabel * label_min_directions
QGridLayout * gridLayout_6
QGroupBox * groupBox_segment_hsv
QVBoxLayout * verticalLayout_4
void setupUi(QMainWindow *MainWindow)
QLabel * label_max_iterations
QSpinBox * spinBox_averaging_max_angle
QSpinBox * spinBox_min_overlap
QLabel * label_min_overlap
QLineEdit * lineEdit_max_fitness
QSpacerItem * verticalSpacer_integration
QLabel * label_max_fitness
QLabel * label_correspondence_rejection_factor
QGroupBox * groupBox_outlier_removal
QSpacerItem * verticalSpacer_input_data_processing
QVBoxLayout * verticalLayout
QLabel * label_averaging_max_angle
QAction * actionReset_camera
QLabel * label_correspondence_rejection_max_angle
QVBoxLayout * verticalLayout_2
QLabel * label_hsv_dilate_size
QGroupBox * groupBox_crop_xyz
QAction * actionMesh_representation
QCheckBox * checkBox_color_segmentation_inverted
QGridLayout * gridLayout_5
QSpinBox * spinBox_correspondence_rejection_max_angle
QSpinBox * spinBox_hsv_dilate_size
QGridLayout * gridLayout_3
QGridLayout * gridLayout_2
QGridLayout * gridLayout_7
QVBoxLayout * verticalLayout_3
QToolButton * toolButton_2
QToolButton * toolButton_1
QDoubleSpinBox * doubleSpinBox_correspondence_rejection_factor
QGroupBox * groupBox_correspondence_rejection
QSpinBox * spinBox_max_age
QGroupBox * groupBox_convergence