132 if (
m_Controls->m_ConnectCameraButton->text()==
"Connect")
138 QString tmpFileName(
"");
139 QString fileFilter(
"");
140 QString selectedCamera = QString::fromStdString(device->GetNameOfClass());
147 if (selectedCamera.contains(
"Kinect") )
154 if (selectedCamera.contains(
"Structure") )
161 if (selectedCamera.contains(
"Player"))
164 if (selectedCamera.contains(
"PMD"))
166 fileFilter.append(
"PMD Files (*.pmd)");
170 fileFilter.append(
"NRRD Images (*.nrrd)");
174 tmpFileName = QFileDialog::getOpenFileName(
nullptr,
"Play Image From...",
"", fileFilter);
177 if (tmpFileName.isEmpty())
179 m_Controls->m_ConnectCameraButton->setChecked(
false);
180 m_Controls->m_ConnectCameraButton->setEnabled(
true);
184 QMessageBox::information(
this,
"Template functionality",
"Please select a valid image before starting some action.");
188 if(selectedCamera.contains(
"PMDPlayer"))
190 this->
m_ToFImageGrabber->SetStringProperty(
"PMDFileName", tmpFileName.toStdString().c_str() );
194 std::string msg =
"";
198 std::string dir = itksys::SystemTools::GetFilenamePath( tmpFileName.toStdString() );
199 std::string baseFilename = itksys::SystemTools::GetFilenameWithoutLastExtension( tmpFileName.toStdString() );
200 std::string extension = itksys::SystemTools::GetFilenameLastExtension( tmpFileName.toStdString() );
203 if (extension !=
".nrrd")
205 msg = msg +
"Invalid file format, please select a \".nrrd\"-file";
206 throw std::logic_error(msg.c_str());
211 int found = baseFilename.rfind(
"_DistanceImage");
213 if (found ==
static_cast<int>(std::string::npos))
215 found = baseFilename.rfind(
"_AmplitudeImage");
218 if (found ==
static_cast<int>(std::string::npos))
220 found = baseFilename.rfind(
"_IntensityImage");
223 if (found ==
static_cast<int>(std::string::npos))
225 found = baseFilename.rfind(
"_RGBImage");
228 if (found ==
static_cast<int>(std::string::npos))
230 msg = msg +
"Input file name must end with \"_DistanceImage\", \"_AmplitudeImage\", \"_IntensityImage\" or \"_RGBImage\"!";
231 throw std::logic_error(msg.c_str());
234 std::string baseFilenamePrefix = baseFilename.substr(0,found);
237 std::string distanceImageFileName = dir +
"/" + baseFilenamePrefix +
"_DistanceImage" + extension;
238 std::string amplitudeImageFileName = dir +
"/" + baseFilenamePrefix +
"_AmplitudeImage" + extension;
239 std::string intensityImageFileName = dir +
"/" + baseFilenamePrefix +
"_IntensityImage" + extension;
240 std::string rgbImageFileName = dir +
"/" + baseFilenamePrefix +
"_RGBImage" + extension;
243 if (!itksys::SystemTools::FileExists(distanceImageFileName.c_str(),
true))
249 this->
m_ToFImageGrabber->SetStringProperty(
"DistanceImageFileName", distanceImageFileName.c_str());
251 if (!itksys::SystemTools::FileExists(amplitudeImageFileName.c_str(),
true))
256 this->
m_ToFImageGrabber->SetStringProperty(
"AmplitudeImageFileName", amplitudeImageFileName.c_str());
258 if (!itksys::SystemTools::FileExists(intensityImageFileName.c_str(),
true))
264 this->
m_ToFImageGrabber->SetStringProperty(
"IntensityImageFileName", intensityImageFileName.c_str());
266 if (!itksys::SystemTools::FileExists(rgbImageFileName.c_str(),
true))
272 this->
m_ToFImageGrabber->SetStringProperty(
"RGBImageFileName", rgbImageFileName.c_str());
276 catch (std::exception &e)
278 MITK_ERROR << e.what();
279 QMessageBox::critical(
this,
"Error", e.what() );
280 m_Controls->m_ConnectCameraButton->setChecked(
false);
281 m_Controls->m_ConnectCameraButton->setEnabled(
true);
291 m_Controls->m_ConnectCameraButton->setText(
"Disconnect");
305 if (selectedCamera.contains(
"PMD"))
307 this->
m_Controls->m_PMDParameterWidget->ActivateAllParameters();
309 else if (selectedCamera.contains(
"MESA"))
311 this->
m_Controls->m_MESAParameterWidget->ActivateAllParameters();
313 else if (selectedCamera.contains(
"Kinect"))
315 this->
m_Controls->m_KinectParameterWidget->ActivateAllParameters();
317 else if (selectedCamera.contains(
"Structure"))
319 this->
m_Controls->m_StructureParameterWidget->ActivateAllParameters();
323 this->HideAllParameterWidgets();
333 QMessageBox::critical(
this,
"Error",
"Connection failed. Check if you have installed the latest driver for your system." );
334 m_Controls->m_ConnectCameraButton->setChecked(
false);
335 m_Controls->m_ConnectCameraButton->setEnabled(
true);
336 m_Controls->m_ConnectCameraButton->setText(
"Connect");
341 }
catch(std::exception &e)
344 QMessageBox::critical(
this,
"Connection failed.", e.what() );
345 m_Controls->m_ConnectCameraButton->setChecked(
false);
346 m_Controls->m_ConnectCameraButton->setEnabled(
true);
347 m_Controls->m_ConnectCameraButton->setText(
"Connect");
352 m_Controls->m_ConnectCameraButton->setEnabled(
true);
355 if (QMessageBox::question(
this,
"Camera parameters",
"Do you want to specify your own camera intrinsics?",QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes)
358 QString fileName = QFileDialog::getOpenFileName(
this,
"Open camera intrinsics",
"/",
"*.xml");
359 mitk::CameraIntrinsics::Pointer cameraIntrinsics = mitk::CameraIntrinsics::New();
360 cameraIntrinsics->FromXMLFile(fileName.toStdString());
361 this->
m_ToFImageGrabber->SetProperty(
"CameraIntrinsics",mitk::CameraIntrinsicsProperty::New(cameraIntrinsics));
362 }
catch ( std::exception &e ) {
363 MITK_WARN <<
"Error loading camera intrinsics: " << e.what();
373 QMessageBox::information(
this,
"Camera connection",
"No camera selected, please select a range camera");
374 m_Controls->m_ConnectCameraButton->setChecked(
false);
377 else if (
m_Controls->m_ConnectCameraButton->text()==
"Disconnect")
381 m_Controls->m_ConnectCameraButton->setText(
"Connect");