mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Added resolution parameters for Usb camera and realsense2 sources
This commit is contained in:
@@ -59,7 +59,6 @@ public:
|
|||||||
static bool available();
|
static bool available();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// default local transform z in, x right, y down));
|
|
||||||
CameraRealSense2(
|
CameraRealSense2(
|
||||||
const std::string & deviceId = "",
|
const std::string & deviceId = "",
|
||||||
float imageRate = 0,
|
float imageRate = 0,
|
||||||
@@ -72,8 +71,11 @@ public:
|
|||||||
bool odomProvided() const;
|
bool odomProvided() const;
|
||||||
|
|
||||||
// parameters are set during initialization
|
// parameters are set during initialization
|
||||||
|
// D400 series
|
||||||
void setEmitterEnabled(bool enabled);
|
void setEmitterEnabled(bool enabled);
|
||||||
void setIRDepthFormat(bool enabled);
|
void setIRDepthFormat(bool enabled);
|
||||||
|
void setResolution(int width, int height, int fps = 30);
|
||||||
|
// T265 related parameters
|
||||||
void setImagesRectified(bool enabled);
|
void setImagesRectified(bool enabled);
|
||||||
void setOdomProvided(bool enabled);
|
void setOdomProvided(bool enabled);
|
||||||
|
|
||||||
@@ -117,6 +119,9 @@ private:
|
|||||||
bool irDepth_;
|
bool irDepth_;
|
||||||
bool rectifyImages_;
|
bool rectifyImages_;
|
||||||
bool odometryProvided_;
|
bool odometryProvided_;
|
||||||
|
int cameraWidth_;
|
||||||
|
int cameraHeight_;
|
||||||
|
int cameraFps_;
|
||||||
|
|
||||||
static Transform realsense2PoseRotation_;
|
static Transform realsense2PoseRotation_;
|
||||||
static Transform realsense2PoseRotationInv_;
|
static Transform realsense2PoseRotationInv_;
|
||||||
|
|||||||
@@ -58,6 +58,13 @@ public:
|
|||||||
int getUsbDevice() const {return _usbDevice;}
|
int getUsbDevice() const {return _usbDevice;}
|
||||||
const std::string & getFilePath() const {return _filePath;}
|
const std::string & getFilePath() const {return _filePath;}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set wanted usb resolution, should be set before initialization. 0 means
|
||||||
|
* default resolution. It won't be applied if a valid camera calibration
|
||||||
|
* has been loaded, thus resolution from calibration is used.
|
||||||
|
* */
|
||||||
|
void setResolution(int width, int height) {_width=width, _height=height;}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual SensorData captureImage(CameraInfo * info = 0);
|
virtual SensorData captureImage(CameraInfo * info = 0);
|
||||||
|
|
||||||
@@ -72,6 +79,8 @@ private:
|
|||||||
// Usb camera
|
// Usb camera
|
||||||
int _usbDevice;
|
int _usbDevice;
|
||||||
std::string _guid;
|
std::string _guid;
|
||||||
|
int _width;
|
||||||
|
int _height;
|
||||||
|
|
||||||
CameraModel _model;
|
CameraModel _model;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -67,7 +67,10 @@ CameraRealSense2::CameraRealSense2(
|
|||||||
emitterEnabled_(true),
|
emitterEnabled_(true),
|
||||||
irDepth_(false),
|
irDepth_(false),
|
||||||
rectifyImages_(true),
|
rectifyImages_(true),
|
||||||
odometryProvided_(false)
|
odometryProvided_(false),
|
||||||
|
cameraWidth_(640),
|
||||||
|
cameraHeight_(480),
|
||||||
|
cameraFps_(30)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
UDEBUG("");
|
UDEBUG("");
|
||||||
@@ -564,21 +567,21 @@ bool CameraRealSense2::init(const std::string & calibrationFolder, const std::st
|
|||||||
{
|
{
|
||||||
//D400 series:
|
//D400 series:
|
||||||
if (video_profile.format() == (i==1?RS2_FORMAT_Z16:irDepth_?RS2_FORMAT_Y8:RS2_FORMAT_RGB8) &&
|
if (video_profile.format() == (i==1?RS2_FORMAT_Z16:irDepth_?RS2_FORMAT_Y8:RS2_FORMAT_RGB8) &&
|
||||||
video_profile.width() == 640 &&
|
video_profile.width() == cameraWidth_ &&
|
||||||
video_profile.height() == 480 &&
|
video_profile.height() == cameraHeight_ &&
|
||||||
video_profile.fps() == 30)
|
video_profile.fps() == cameraFps_)
|
||||||
{
|
{
|
||||||
profilesPerSensor[irDepth_?1:i].push_back(profile);
|
profilesPerSensor[irDepth_?1:i].push_back(profile);
|
||||||
auto intrinsic = video_profile.get_intrinsics();
|
auto intrinsic = video_profile.get_intrinsics();
|
||||||
if(i==1)
|
if(i==1)
|
||||||
{
|
{
|
||||||
depthBuffer_ = cv::Mat(cv::Size(640, 480), CV_16UC1, cv::Scalar(0));
|
depthBuffer_ = cv::Mat(cv::Size(cameraWidth_, cameraHeight_), CV_16UC1, cv::Scalar(0));
|
||||||
depthStreamProfile = profile;
|
depthStreamProfile = profile;
|
||||||
*depthIntrinsics_ = intrinsic;
|
*depthIntrinsics_ = intrinsic;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rgbBuffer_ = cv::Mat(cv::Size(640, 480), irDepth_?CV_8UC1:CV_8UC3, irDepth_?cv::Scalar(0):cv::Scalar(0, 0, 0));
|
rgbBuffer_ = cv::Mat(cv::Size(cameraWidth_, cameraHeight_), irDepth_?CV_8UC1:CV_8UC3, irDepth_?cv::Scalar(0):cv::Scalar(0, 0, 0));
|
||||||
model_ = CameraModel(camera_name, intrinsic.fx, intrinsic.fy, intrinsic.ppx, intrinsic.ppy, this->getLocalTransform(), 0, cv::Size(intrinsic.width, intrinsic.height));
|
model_ = CameraModel(camera_name, intrinsic.fx, intrinsic.fy, intrinsic.ppx, intrinsic.ppy, this->getLocalTransform(), 0, cv::Size(intrinsic.width, intrinsic.height));
|
||||||
rgbStreamProfile = profile;
|
rgbStreamProfile = profile;
|
||||||
*rgbIntrinsics_ = intrinsic;
|
*rgbIntrinsics_ = intrinsic;
|
||||||
@@ -638,7 +641,17 @@ bool CameraRealSense2::init(const std::string & calibrationFolder, const std::st
|
|||||||
if (!added)
|
if (!added)
|
||||||
{
|
{
|
||||||
UERROR("Given stream configuration is not supported by the device! "
|
UERROR("Given stream configuration is not supported by the device! "
|
||||||
"Stream Index: %d, Width: %d, Height: %d, FPS: %d", i, 640, 480, 30);
|
"Stream Index: %d, Width: %d, Height: %d, FPS: %d", i, cameraWidth_, cameraHeight_, cameraFps_);
|
||||||
|
UERROR("Available configurations:");
|
||||||
|
for (auto& profile : profiles)
|
||||||
|
{
|
||||||
|
auto video_profile = profile.as<rs2::video_stream_profile>();
|
||||||
|
UERROR("%s %d %d %d", rs2_format_to_string(
|
||||||
|
video_profile.format()),
|
||||||
|
video_profile.width(),
|
||||||
|
video_profile.height(),
|
||||||
|
video_profile.fps());
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -819,6 +832,15 @@ void CameraRealSense2::setIRDepthFormat(bool enabled)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CameraRealSense2::setResolution(int width, int height, int fps)
|
||||||
|
{
|
||||||
|
#ifdef RTABMAP_REALSENSE2
|
||||||
|
cameraWidth_ = width;
|
||||||
|
cameraHeight_ = height;
|
||||||
|
cameraFps_ = fps;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void CameraRealSense2::setImagesRectified(bool enabled)
|
void CameraRealSense2::setImagesRectified(bool enabled)
|
||||||
{
|
{
|
||||||
#ifdef RTABMAP_REALSENSE2
|
#ifdef RTABMAP_REALSENSE2
|
||||||
|
|||||||
@@ -43,7 +43,9 @@ CameraVideo::CameraVideo(
|
|||||||
Camera(imageRate, localTransform),
|
Camera(imageRate, localTransform),
|
||||||
_rectifyImages(rectifyImages),
|
_rectifyImages(rectifyImages),
|
||||||
_src(kUsbDevice),
|
_src(kUsbDevice),
|
||||||
_usbDevice(usbDevice)
|
_usbDevice(usbDevice),
|
||||||
|
_width(0),
|
||||||
|
_height(0)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -57,7 +59,9 @@ CameraVideo::CameraVideo(
|
|||||||
_filePath(filePath),
|
_filePath(filePath),
|
||||||
_rectifyImages(rectifyImages),
|
_rectifyImages(rectifyImages),
|
||||||
_src(kVideoFile),
|
_src(kVideoFile),
|
||||||
_usbDevice(0)
|
_usbDevice(0),
|
||||||
|
_width(0),
|
||||||
|
_height(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,6 +127,19 @@ bool CameraVideo::init(const std::string & calibrationFolder, const std::string
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_model.setLocalTransform(this->getLocalTransform());
|
_model.setLocalTransform(this->getLocalTransform());
|
||||||
|
if(_src == kUsbDevice)
|
||||||
|
{
|
||||||
|
if(_model.isValidForProjection())
|
||||||
|
{
|
||||||
|
_capture.set(cv::CAP_PROP_FRAME_WIDTH, _model.imageWidth());
|
||||||
|
_capture.set(cv::CAP_PROP_FRAME_HEIGHT, _model.imageHeight());
|
||||||
|
}
|
||||||
|
else if(_width > 0 && _height > 0)
|
||||||
|
{
|
||||||
|
_capture.set(cv::CAP_PROP_FRAME_WIDTH, _width);
|
||||||
|
_capture.set(cv::CAP_PROP_FRAME_HEIGHT, _height);
|
||||||
|
}
|
||||||
|
}
|
||||||
if(_rectifyImages && !_model.isValidForRectification())
|
if(_rectifyImages && !_model.isValidForRectification())
|
||||||
{
|
{
|
||||||
UERROR("Parameter \"rectifyImages\" is set, but no camera model is loaded or valid.");
|
UERROR("Parameter \"rectifyImages\" is set, but no camera model is loaded or valid.");
|
||||||
|
|||||||
@@ -568,6 +568,9 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
|
|||||||
connect(_ui->source_images_spinBox_startPos, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->source_images_spinBox_startPos, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->source_images_spinBox_maxFrames, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->source_images_spinBox_maxFrames, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->comboBox_cameraImages_bayerMode, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->comboBox_cameraImages_bayerMode, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
// usb group
|
||||||
|
connect(_ui->spinBox_usbcam_streamWidth, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->spinBox_usbcam_streamHeight, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
//video group
|
//video group
|
||||||
connect(_ui->source_video_toolButton_selectSource, SIGNAL(clicked()), this, SLOT(selectSourceVideoPath()));
|
connect(_ui->source_video_toolButton_selectSource, SIGNAL(clicked()), this, SLOT(selectSourceVideoPath()));
|
||||||
connect(_ui->source_video_lineEdit_path, SIGNAL(textChanged(const QString &)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->source_video_lineEdit_path, SIGNAL(textChanged(const QString &)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
@@ -614,6 +617,9 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
|
|||||||
connect(_ui->comboBox_realsenseRGBSource, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->comboBox_realsenseRGBSource, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->checkbox_rs2_emitter, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->checkbox_rs2_emitter, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->checkbox_rs2_irDepth, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->checkbox_rs2_irDepth, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->spinBox_rs2_width, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->spinBox_rs2_height, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->spinBox_rs2_rate, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
|
||||||
connect(_ui->toolButton_cameraImages_timestamps, SIGNAL(clicked()), this, SLOT(selectSourceImagesStamps()));
|
connect(_ui->toolButton_cameraImages_timestamps, SIGNAL(clicked()), this, SLOT(selectSourceImagesStamps()));
|
||||||
connect(_ui->lineEdit_cameraImages_timestamps, SIGNAL(textChanged(const QString &)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->lineEdit_cameraImages_timestamps, SIGNAL(textChanged(const QString &)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
@@ -1696,6 +1702,8 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
|
|||||||
_ui->source_comboBox_image_type->setCurrentIndex(kSrcUsbDevice-kSrcUsbDevice);
|
_ui->source_comboBox_image_type->setCurrentIndex(kSrcUsbDevice-kSrcUsbDevice);
|
||||||
_ui->source_images_spinBox_startPos->setValue(0);
|
_ui->source_images_spinBox_startPos->setValue(0);
|
||||||
_ui->source_images_spinBox_maxFrames->setValue(0);
|
_ui->source_images_spinBox_maxFrames->setValue(0);
|
||||||
|
_ui->spinBox_usbcam_streamWidth->setValue(0);
|
||||||
|
_ui->spinBox_usbcam_streamHeight->setValue(0);
|
||||||
_ui->checkBox_rgb_rectify->setChecked(false);
|
_ui->checkBox_rgb_rectify->setChecked(false);
|
||||||
_ui->comboBox_cameraImages_bayerMode->setCurrentIndex(0);
|
_ui->comboBox_cameraImages_bayerMode->setCurrentIndex(0);
|
||||||
|
|
||||||
@@ -1763,6 +1771,9 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
|
|||||||
_ui->comboBox_realsenseRGBSource->setCurrentIndex(0);
|
_ui->comboBox_realsenseRGBSource->setCurrentIndex(0);
|
||||||
_ui->checkbox_rs2_emitter->setChecked(true);
|
_ui->checkbox_rs2_emitter->setChecked(true);
|
||||||
_ui->checkbox_rs2_irDepth->setChecked(false);
|
_ui->checkbox_rs2_irDepth->setChecked(false);
|
||||||
|
_ui->spinBox_rs2_width->setValue(640);
|
||||||
|
_ui->spinBox_rs2_height->setValue(480);
|
||||||
|
_ui->spinBox_rs2_rate->setValue(30);
|
||||||
_ui->lineEdit_openniOniPath->clear();
|
_ui->lineEdit_openniOniPath->clear();
|
||||||
_ui->lineEdit_openni2OniPath->clear();
|
_ui->lineEdit_openni2OniPath->clear();
|
||||||
_ui->lineEdit_cameraRGBDImages_path_rgb->setText("");
|
_ui->lineEdit_cameraRGBDImages_path_rgb->setText("");
|
||||||
@@ -2170,6 +2181,9 @@ void PreferencesDialog::readCameraSettings(const QString & filePath)
|
|||||||
settings.beginGroup("RealSense2");
|
settings.beginGroup("RealSense2");
|
||||||
_ui->checkbox_rs2_emitter->setChecked(settings.value("emitter", _ui->checkbox_rs2_emitter->isChecked()).toBool());
|
_ui->checkbox_rs2_emitter->setChecked(settings.value("emitter", _ui->checkbox_rs2_emitter->isChecked()).toBool());
|
||||||
_ui->checkbox_rs2_irDepth->setChecked(settings.value("irdepth", _ui->checkbox_rs2_irDepth->isChecked()).toBool());
|
_ui->checkbox_rs2_irDepth->setChecked(settings.value("irdepth", _ui->checkbox_rs2_irDepth->isChecked()).toBool());
|
||||||
|
_ui->spinBox_rs2_width->setValue(settings.value("width", _ui->spinBox_rs2_width->value()).toInt());
|
||||||
|
_ui->spinBox_rs2_height->setValue(settings.value("height", _ui->spinBox_rs2_height->value()).toInt());
|
||||||
|
_ui->spinBox_rs2_rate->setValue(settings.value("rate", _ui->spinBox_rs2_rate->value()).toInt());
|
||||||
settings.endGroup(); // RealSense
|
settings.endGroup(); // RealSense
|
||||||
|
|
||||||
settings.beginGroup("RGBDImages");
|
settings.beginGroup("RGBDImages");
|
||||||
@@ -2231,6 +2245,11 @@ void PreferencesDialog::readCameraSettings(const QString & filePath)
|
|||||||
_ui->spinBox_cameraImages_max_imu_rate->setValue(settings.value("imu_rate", _ui->spinBox_cameraImages_max_imu_rate->value()).toInt());
|
_ui->spinBox_cameraImages_max_imu_rate->setValue(settings.value("imu_rate", _ui->spinBox_cameraImages_max_imu_rate->value()).toInt());
|
||||||
settings.endGroup(); // images
|
settings.endGroup(); // images
|
||||||
|
|
||||||
|
settings.beginGroup("UsbCam");
|
||||||
|
_ui->spinBox_usbcam_streamWidth->setValue(settings.value("width", _ui->spinBox_usbcam_streamWidth->value()).toInt());
|
||||||
|
_ui->spinBox_usbcam_streamHeight->setValue(settings.value("height", _ui->spinBox_usbcam_streamHeight->value()).toInt());
|
||||||
|
settings.endGroup(); // UsbCam
|
||||||
|
|
||||||
settings.beginGroup("Video");
|
settings.beginGroup("Video");
|
||||||
_ui->source_video_lineEdit_path->setText(settings.value("path", _ui->source_video_lineEdit_path->text()).toString());
|
_ui->source_video_lineEdit_path->setText(settings.value("path", _ui->source_video_lineEdit_path->text()).toString());
|
||||||
settings.endGroup(); // video
|
settings.endGroup(); // video
|
||||||
@@ -2602,6 +2621,9 @@ void PreferencesDialog::writeCameraSettings(const QString & filePath) const
|
|||||||
settings.beginGroup("RealSense2");
|
settings.beginGroup("RealSense2");
|
||||||
settings.setValue("emitter", _ui->checkbox_rs2_emitter->isChecked());
|
settings.setValue("emitter", _ui->checkbox_rs2_emitter->isChecked());
|
||||||
settings.setValue("irdepth", _ui->checkbox_rs2_irDepth->isChecked());
|
settings.setValue("irdepth", _ui->checkbox_rs2_irDepth->isChecked());
|
||||||
|
settings.setValue("width", _ui->spinBox_rs2_width->value());
|
||||||
|
settings.setValue("height", _ui->spinBox_rs2_height->value());
|
||||||
|
settings.setValue("rate", _ui->spinBox_rs2_rate->value());
|
||||||
settings.endGroup(); // RealSense2
|
settings.endGroup(); // RealSense2
|
||||||
|
|
||||||
settings.beginGroup("RGBDImages");
|
settings.beginGroup("RGBDImages");
|
||||||
@@ -2661,6 +2683,11 @@ void PreferencesDialog::writeCameraSettings(const QString & filePath) const
|
|||||||
settings.setValue("imu_rate", _ui->spinBox_cameraImages_max_imu_rate->value());
|
settings.setValue("imu_rate", _ui->spinBox_cameraImages_max_imu_rate->value());
|
||||||
settings.endGroup(); // images
|
settings.endGroup(); // images
|
||||||
|
|
||||||
|
settings.beginGroup("UsbCam");
|
||||||
|
settings.setValue("width", _ui->spinBox_usbcam_streamWidth->value());
|
||||||
|
settings.setValue("height", _ui->spinBox_usbcam_streamHeight->value());
|
||||||
|
settings.endGroup(); // UsbCam
|
||||||
|
|
||||||
settings.beginGroup("Video");
|
settings.beginGroup("Video");
|
||||||
settings.setValue("path", _ui->source_video_lineEdit_path->text());
|
settings.setValue("path", _ui->source_video_lineEdit_path->text());
|
||||||
settings.endGroup(); // video
|
settings.endGroup(); // video
|
||||||
@@ -4523,9 +4550,13 @@ void PreferencesDialog::updateSourceGrpVisibility()
|
|||||||
_ui->groupBox_cameraStereoZed->setVisible(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoZed - kSrcStereo);
|
_ui->groupBox_cameraStereoZed->setVisible(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoZed - kSrcStereo);
|
||||||
_ui->groupBox_cameraStereoRealSense2->setVisible(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoRealSense2 - kSrcStereo);
|
_ui->groupBox_cameraStereoRealSense2->setVisible(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoRealSense2 - kSrcStereo);
|
||||||
|
|
||||||
_ui->stackedWidget_image->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && (_ui->source_comboBox_image_type->currentIndex() == kSrcImages-kSrcRGB || _ui->source_comboBox_image_type->currentIndex() == kSrcVideo-kSrcRGB));
|
_ui->stackedWidget_image->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 &&
|
||||||
|
(_ui->source_comboBox_image_type->currentIndex() == kSrcImages-kSrcRGB ||
|
||||||
|
_ui->source_comboBox_image_type->currentIndex() == kSrcVideo-kSrcRGB ||
|
||||||
|
_ui->source_comboBox_image_type->currentIndex() == kSrcUsbDevice-kSrcRGB));
|
||||||
_ui->source_groupBox_images->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcImages-kSrcRGB);
|
_ui->source_groupBox_images->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcImages-kSrcRGB);
|
||||||
_ui->source_groupBox_video->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcVideo-kSrcRGB);
|
_ui->source_groupBox_video->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcVideo-kSrcRGB);
|
||||||
|
_ui->source_groupBox_usbcam->setVisible(_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcUsbDevice-kSrcRGB);
|
||||||
|
|
||||||
_ui->groupBox_sourceImages_optional->setVisible(
|
_ui->groupBox_sourceImages_optional->setVisible(
|
||||||
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcRGBDImages-kSrcRGBD) ||
|
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcRGBDImages-kSrcRGBD) ||
|
||||||
@@ -5270,6 +5301,7 @@ Camera * PreferencesDialog::createCamera(bool useRawImages, bool useColor)
|
|||||||
{
|
{
|
||||||
((CameraRealSense2*)camera)->setEmitterEnabled(_ui->checkbox_rs2_emitter->isChecked());
|
((CameraRealSense2*)camera)->setEmitterEnabled(_ui->checkbox_rs2_emitter->isChecked());
|
||||||
((CameraRealSense2*)camera)->setIRDepthFormat(_ui->checkbox_rs2_irDepth->isChecked());
|
((CameraRealSense2*)camera)->setIRDepthFormat(_ui->checkbox_rs2_irDepth->isChecked());
|
||||||
|
((CameraRealSense2*)camera)->setResolution(_ui->spinBox_rs2_width->value(), _ui->spinBox_rs2_height->value(), _ui->spinBox_rs2_rate->value());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5434,6 +5466,7 @@ Camera * PreferencesDialog::createCamera(bool useRawImages, bool useColor)
|
|||||||
_ui->checkBox_rgb_rectify->isChecked() && !useRawImages,
|
_ui->checkBox_rgb_rectify->isChecked() && !useRawImages,
|
||||||
this->getGeneralInputRate(),
|
this->getGeneralInputRate(),
|
||||||
this->getSourceLocalTransform());
|
this->getSourceLocalTransform());
|
||||||
|
((CameraVideo*)camera)->setResolution(_ui->spinBox_usbcam_streamWidth->value(), _ui->spinBox_usbcam_streamHeight->value());
|
||||||
}
|
}
|
||||||
else if(driver == kSrcVideo)
|
else if(driver == kSrcVideo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>-1977</y>
|
<y>0</y>
|
||||||
<width>680</width>
|
<width>680</width>
|
||||||
<height>3082</height>
|
<height>3082</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -2962,7 +2962,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="stackedWidget_src">
|
<widget class="QStackedWidget" name="stackedWidget_src">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>1</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_41">
|
<widget class="QWidget" name="page_41">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_64">
|
<layout class="QVBoxLayout" name="verticalLayout_64">
|
||||||
@@ -3091,7 +3091,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="stackedWidget_rgbd">
|
<widget class="QStackedWidget" name="stackedWidget_rgbd">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>6</number>
|
<number>9</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_32">
|
<widget class="QWidget" name="page_32">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_63">
|
<layout class="QVBoxLayout" name="verticalLayout_63">
|
||||||
@@ -4057,6 +4057,36 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<string>RealSense2</string>
|
<string>RealSense2</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_100" columnstretch="0,1">
|
<layout class="QGridLayout" name="gridLayout_100" columnstretch="0,1">
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="label_549">
|
||||||
|
<property name="text">
|
||||||
|
<string>Stream width.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox_rs2_height">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> pix</string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>9999</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox_rs2_rate">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> Hz</string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>999</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QCheckBox" name="checkbox_rs2_emitter">
|
<widget class="QCheckBox" name="checkbox_rs2_emitter">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -4098,6 +4128,26 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox_rs2_width">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> pix</string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>9999</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="label_550">
|
||||||
|
<property name="text">
|
||||||
|
<string>Stream height.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
<spacer name="verticalSpacer_71">
|
<spacer name="verticalSpacer_71">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
@@ -4110,6 +4160,16 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLabel" name="label_551">
|
||||||
|
<property name="text">
|
||||||
|
<string>Stream rate.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -4289,7 +4349,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="stackedWidget_stereo">
|
<widget class="QStackedWidget" name="stackedWidget_stereo">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>5</number>
|
<number>7</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_49">
|
<widget class="QWidget" name="page_49">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_91">
|
<layout class="QVBoxLayout" name="verticalLayout_91">
|
||||||
@@ -4970,10 +5030,65 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="stackedWidget_image">
|
<widget class="QStackedWidget" name="stackedWidget_image">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>1</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_7">
|
<widget class="QWidget" name="page_7">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_30">
|
<layout class="QVBoxLayout" name="verticalLayout_30">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="source_groupBox_usbcam">
|
||||||
|
<property name="title">
|
||||||
|
<string>USB Camera</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_112" columnstretch="0,1">
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox_usbcam_streamHeight">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>10000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="label_553">
|
||||||
|
<property name="text">
|
||||||
|
<string>Stream height (0 for default resolution).</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="label_552">
|
||||||
|
<property name="text">
|
||||||
|
<string>Stream width (0 for default resolution).</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox_usbcam_streamWidth">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>10000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_8">
|
<spacer name="verticalSpacer_8">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -4981,7 +5096,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>20</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@@ -7929,7 +8044,7 @@ If set to false, classic RTAB-Map loop closure detection is done using only imag
|
|||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="label_similarity">
|
<widget class="QLabel" name="label_similarity">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>T_similarity : Similarity threshold. Values must be >=0.0 ans <=1.0.</string>
|
<string>T_similarity : Similarity threshold. Values must be >=0.0 and <=1.0.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
|||||||
Reference in New Issue
Block a user