mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-03 16:27:46 +08:00
DatabaseViewer: set default stereo parameters instead of hard-coded ones
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@2002 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -1133,7 +1133,7 @@ void DatabaseViewer::update(int value,
|
|||||||
|
|
||||||
void DatabaseViewer::updateStereo(const Signature * data)
|
void DatabaseViewer::updateStereo(const Signature * data)
|
||||||
{
|
{
|
||||||
if(ui_->dockWidget_stereoView->isVisible() && !data->getImageRaw().empty() && !data->getDepthRaw().empty() && data->getDepthRaw().type() == CV_8UC1)
|
if(data && ui_->dockWidget_stereoView->isVisible() && !data->getImageRaw().empty() && !data->getDepthRaw().empty() && data->getDepthRaw().type() == CV_8UC1)
|
||||||
{
|
{
|
||||||
cv::Mat leftMono;
|
cv::Mat leftMono;
|
||||||
if(data->getImageRaw().channels() == 3)
|
if(data->getImageRaw().channels() == 3)
|
||||||
@@ -1152,7 +1152,7 @@ void DatabaseViewer::updateStereo(const Signature * data)
|
|||||||
cv::Rect roi = Feature2D::computeRoi(leftMono, "0.03 0.03 0.04 0.04");
|
cv::Rect roi = Feature2D::computeRoi(leftMono, "0.03 0.03 0.04 0.04");
|
||||||
ParametersMap parameters;
|
ParametersMap parameters;
|
||||||
parameters.insert(ParametersPair(Parameters::kGFTTMaxCorners(), "1000"));
|
parameters.insert(ParametersPair(Parameters::kGFTTMaxCorners(), "1000"));
|
||||||
parameters.insert(ParametersPair(Parameters::kGFTTMinDistance(), "10"));
|
parameters.insert(ParametersPair(Parameters::kGFTTMinDistance(), "5"));
|
||||||
Feature2D::Type type = Feature2D::kFeatureGfttBrief;
|
Feature2D::Type type = Feature2D::kFeatureGfttBrief;
|
||||||
Feature2D * kptDetector = Feature2D::create(type, parameters);
|
Feature2D * kptDetector = Feature2D::create(type, parameters);
|
||||||
kpts = kptDetector->generateKeypoints(leftMono, 0, roi);
|
kpts = kptDetector->generateKeypoints(leftMono, 0, roi);
|
||||||
@@ -1174,8 +1174,8 @@ void DatabaseViewer::updateStereo(const Signature * data)
|
|||||||
rightCorners,
|
rightCorners,
|
||||||
status,
|
status,
|
||||||
err,
|
err,
|
||||||
cv::Size(21, 21), 4,
|
cv::Size(Parameters::defaultStereoWinSize(), Parameters::defaultStereoWinSize()), Parameters::defaultStereoMaxLevel(),
|
||||||
cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 20, 0.02));
|
cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, Parameters::defaultStereoIterations(), Parameters::defaultStereoEps()));
|
||||||
|
|
||||||
float timeFlow = timer.ticks();
|
float timeFlow = timer.ticks();
|
||||||
|
|
||||||
@@ -1192,7 +1192,7 @@ void DatabaseViewer::updateStereo(const Signature * data)
|
|||||||
float disparity = leftCorners[i].x - rightCorners[i].x;
|
float disparity = leftCorners[i].x - rightCorners[i].x;
|
||||||
if(disparity > 0.0f)
|
if(disparity > 0.0f)
|
||||||
{
|
{
|
||||||
if(fabs((leftCorners[i].y-rightCorners[i].y) / (leftCorners[i].x-rightCorners[i].x)) < 0.1)
|
if(fabs((leftCorners[i].y-rightCorners[i].y) / (leftCorners[i].x-rightCorners[i].x)) < Parameters::defaultStereoMaxSlope())
|
||||||
{
|
{
|
||||||
pcl::PointXYZ tmpPt = util3d::projectDisparityTo3D(
|
pcl::PointXYZ tmpPt = util3d::projectDisparityTo3D(
|
||||||
leftCorners[i],
|
leftCorners[i],
|
||||||
|
|||||||
Reference in New Issue
Block a user