11 #include <QDoubleSpinBox>
12 #include <QFileDialog>
14 #include <QMessageBox>
15 #include <QPushButton>
17 #include <QToolButton>
29 applyTransfoMatrixTextEdit->setVisible(
false);
33 connect(buttonBox, &QDialogButtonBox::accepted,
this,
35 connect(browseImageListFileToolButton, &QAbstractButton::clicked,
this,
37 connect(browseAltKeypointsFileToolButton, &QAbstractButton::clicked,
this,
45 settings.beginGroup(
"BundlerImport");
49 settings.value(
"scaleFactor", imageScaleDoubleSpinBox->value())
51 bool orthoRectifyAsCloud =
52 settings.value(
"orthoRectifyAsClouds",
53 orthoRectifyAsCloudCheckBox->isChecked())
55 bool orthoRectifyAsImage =
56 settings.value(
"orthoRectifyAsImages",
57 orthoRectifyAsImageCheckBox->isChecked())
60 undistortImagesCheckBox->isChecked())
63 settings.value(
"generateColoredDTM",
64 generateColoredDTMGroupBox->isChecked())
67 settings.value(
"keepImagesInMemory",
68 keepImagesInMemoryCheckBox->isChecked())
71 settings.value(
"importImages", imagesGroupBox->isChecked())
73 bool useAltKeypoints =
77 importKeypointsGroupBox->isChecked())
79 int dtmVerticesCount =
80 settings.value(
"dtmVerticesCount", dtmVerticesSpinBox->value())
83 settings.value(
"orthoRectMethod",
84 orthoRectMethodComboBox->currentIndex())
88 imageScaleDoubleSpinBox->setValue(scaleFactor);
89 orthoRectifyAsCloudCheckBox->setChecked(orthoRectifyAsCloud);
90 orthoRectifyAsImageCheckBox->setChecked(orthoRectifyAsImage);
94 altKeypointsCheckBox->setChecked(useAltKeypoints);
96 dtmVerticesSpinBox->setValue(dtmVerticesCount);
98 orthoRectMethodComboBox->setCurrentIndex(orthoRectMethod);
105 if (customVertAxisRadioButton->isChecked()) {
110 QMessageBox::critical(
this,
"Invalid matrix",
111 "Invalid input 4x4 matrix!");
117 settings.beginGroup(
"BundlerImport");
120 settings.setValue(
"scaleFactor", imageScaleDoubleSpinBox->value());
121 settings.setValue(
"orthoRectifyAsClouds",
122 orthoRectifyAsCloudCheckBox->isChecked());
123 settings.setValue(
"orthoRectifyAsImages",
124 orthoRectifyAsImageCheckBox->isChecked());
125 settings.setValue(
"undistortImages", undistortImagesCheckBox->isChecked());
126 settings.setValue(
"generateColoredDTM",
127 generateColoredDTMGroupBox->isChecked());
128 settings.setValue(
"keepImagesInMemory",
129 keepImagesInMemoryCheckBox->isChecked());
130 settings.setValue(
"importImages", imagesGroupBox->isChecked());
131 settings.setValue(
"useAltKeypoints", altKeypointsCheckBox->isChecked());
132 settings.setValue(
"importKeypoints", importKeypointsGroupBox->isChecked());
133 settings.setValue(
"dtmVerticesCount", dtmVerticesSpinBox->value());
134 settings.setValue(
"orthoRectMethod",
135 orthoRectMethodComboBox->currentIndex());
143 return altKeypointsCheckBox->isChecked();
147 return importKeypointsGroupBox->isEnabled() &&
148 importKeypointsGroupBox->isChecked();
152 return imagesGroupBox->isEnabled() && imagesGroupBox->isChecked();
156 return imagesGroupBox->isEnabled() &&
157 undistortImagesCheckBox->isEnabled() &&
158 undistortImagesCheckBox->isChecked();
162 return imagesGroupBox->isEnabled() &&
163 orthoRectifyAsCloudCheckBox->isChecked();
167 return imagesGroupBox->isEnabled() &&
168 orthoRectifyAsImageCheckBox->isChecked();
172 return imagesGroupBox->isEnabled() &&
173 generateColoredDTMGroupBox->isChecked();
177 return imagesGroupBox->isEnabled() &&
178 keepImagesInMemoryCheckBox->isChecked();
183 switch (orthoRectMethodComboBox->currentIndex()) {
199 keyPointsCountLabel->setText(QString::number(
count));
200 importKeypointsGroupBox->setEnabled(
count != 0);
203 orthoRectifyAsImageCheckBox->setChecked(
false);
204 orthoRectifyAsImageCheckBox->setEnabled(
false);
205 orthoRectifyAsCloudCheckBox->setChecked(
false);
206 orthoRectifyAsCloudCheckBox->setEnabled(
false);
211 cameraCountLabel->setText(QString::number(
count));
212 imagesGroupBox->setEnabled(
count != 0);
216 versionLabel->setText(QString(
"v%1.%2").arg(majorVer).arg(minorVer));
220 imageListFilePathLineEdit->setText(
filename);
224 return imageListFilePathLineEdit->text();
228 altKeypointsFilePathLineEdit->setText(
filename);
232 return altKeypointsFilePathLineEdit->text();
236 QString imageListFilename = QFileDialog::getOpenFileName(
237 this,
"Open image list file", imageListFilePathLineEdit->text(),
238 "Image list (*.txt)");
240 if (!imageListFilename.isEmpty())
241 imageListFilePathLineEdit->setText(imageListFilename);
245 QString altKeypointsFilename = QFileDialog::getOpenFileName(
246 this,
"Open alternative keypoints file",
247 altKeypointsFilePathLineEdit->text(),
"Cloud/mesh (*.*)");
249 if (!altKeypointsFilename.isEmpty())
250 altKeypointsFilePathLineEdit->setText(altKeypointsFilename);
254 return imageScaleDoubleSpinBox->value();
258 return dtmVerticesSpinBox->value();
262 if (xVertAxisRadioButton->isChecked()) {
265 mat.
data()[2] = -1.0f;
266 mat.
data()[5] = 1.0f;
267 mat.
data()[8] = 1.0f;
268 mat.
data()[15] = 1.0f;
270 }
else if (yVertAxisRadioButton->isChecked()) {
273 mat.
data()[0] = 1.0f;
274 mat.
data()[6] = -1.0f;
275 mat.
data()[9] = -1.0f;
276 mat.
data()[15] = 1.0f;
278 }
else if (customVertAxisRadioButton->isChecked()) {
279 bool success =
false;
bool importImages() const
Returns whether images should be imported.
void browseAltKeypointsFilename()
bool orthoRectifyImagesAsImages() const
Returns whether images should be ortho-rectified as images.
bool getOptionalTransfoMatrix(ccGLMatrix &mat)
Returns the optional transformation matrix (if defined)
bool importKeypoints() const
Returns whether keypoints should be imported.
unsigned getDTMVerticesCount() const
Returns desired number of vertices for DTM.
bool keepImagesInMemory() const
Returns images should be kept in memory or not.
void browseImageListFilename()
QString getAltKeypointsFilename() const
Gets alternative keypoints filename (full path)
void setImageListFilename(const QString &filename)
Sets default image list filename (full path)
bool orthoRectifyImagesAsClouds() const
Returns whether images should be ortho-rectified as clouds.
void setVer(unsigned majorVer, unsigned minorVer)
Sets file version on initialization.
OrthoRectMethod getOrthorectificationMethod() const
Returns the ortho-rectification method (for images)
bool useAlternativeKeypoints() const
Returns whether alternative keypoints should be used.
virtual ~BundlerImportDlg()
Destructor.
void setCamerasCount(unsigned count)
Sets cameras count on initialization.
double getScaleFactor() const
Returns scale factor.
bool undistortImages() const
Returns whether images should be undistorted.
bool generateColoredDTM() const
Returns whether colored pseudo-DTM should be generated.
void setAltKeypointsFilename(const QString &filename)
Sets default alternative keypoints filename (full path)
void setKeypointsCount(unsigned count)
Sets keypoints count on initialization.
void initFromPersistentSettings()
Inits dialog state from persistent settings.
void acceptAndSaveSettings()
OrthoRectMethod
Image ortho-rectification methods.
QString getImageListFilename() const
Gets image list filename (full path)
BundlerImportDlg(QWidget *parent=0)
Default constructor.
virtual void toZero()
Clears matrix.
T * data()
Returns a pointer to internal data.
static ccGLMatrixTpl< double > FromString(const QString &matText, bool &success)
Converts a 'text' matrix to a ccGLMatrix.
Float version of ccGLMatrixTpl.