Added new 2d feature ORB OcTree (approach used in ORB_SLAM2). report tool: fixed assert caused by bidirectional links. detectModeLoopClosures tool: check if input path exists.

This commit is contained in:
matlabbe
2019-04-18 19:50:58 -04:00
parent 8a6c0dad00
commit a0f74eaee2
15 changed files with 1585 additions and 111 deletions

View File

@@ -213,6 +213,11 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
#endif
#endif
#ifndef RTABMAP_ORB_OCTREE
_ui->comboBox_detector_strategy->setItemData(10, 0, Qt::UserRole - 1);
_ui->reextract_type->setItemData(10, 0, Qt::UserRole - 1);
#endif
#if CV_MAJOR_VERSION >= 3
_ui->groupBox_fast_opencv2->setEnabled(false);
#else
@@ -2714,6 +2719,23 @@ bool PreferencesDialog::validateForm()
}
#endif
#ifndef RTABMAP_ORB_OCTREE
if (_ui->comboBox_detector_strategy->currentIndex() == Feature2D::kFeatureOrbOctree)
{
QMessageBox::warning(this, tr("Parameter warning"),
tr("Selected feature type (ORB Octree) is not available. ORB is set instead "
"for the bag-of-words dictionary."));
_ui->comboBox_detector_strategy->setCurrentIndex(Feature2D::kFeatureOrb);
}
if (_ui->reextract_type->currentIndex() == Feature2D::kFeatureOrbOctree)
{
QMessageBox::warning(this, tr("Parameter warning"),
tr("Selected feature type (ORB Octree) is not available on OpenCV2. ORB is set instead "
"for the re-extraction of features on loop closure."));
_ui->reextract_type->setCurrentIndex(Feature2D::kFeatureOrb);
}
#endif
// optimization strategy
if(_ui->graphOptimization_type->currentIndex() == 0 && !Optimizer::isAvailable(Optimizer::kTypeTORO))
{