depth filter now also updates old seeds with new keyframes. previously a keyframe was only used to initialize new seeds.

This commit is contained in:
Christian Forster
2014-04-30 15:20:01 +02:00
parent 8291a6b9c1
commit 5578939b84
7 changed files with 51 additions and 35 deletions
+9 -8
View File
@@ -49,7 +49,7 @@ class DepthFilterTest {
public:
DepthFilterTest();
virtual ~DepthFilterTest();
void depthFilterCb(const svo::Seed& seed, const Eigen::Vector3d& xyz_world);
void depthFilterCb(svo::Point* point, double depth_sigma2);
void testReconstruction(std::string dataset_dir, std::string experiment_name);
std::list<ConvergedSeed> results_;
@@ -76,15 +76,16 @@ DepthFilterTest::~DepthFilterTest()
delete cam_;
}
void DepthFilterTest::depthFilterCb(
const svo::Seed& seed,
const Eigen::Vector3d& xyz_world)
void DepthFilterTest::depthFilterCb(svo::Point* point, double depth_sigma2)
{
double depth = (frame_ref_->pos() - xyz_world).norm();
double error = fabs(depth - depth_ref_.at<float>(seed.ftr->px[1], seed.ftr->px[0]));
results_.push_back(ConvergedSeed(seed.ftr->px[0], seed.ftr->px[1], depth, error));
double depth = (frame_ref_->pos() - point->pos_).norm();
double error = fabs(depth - depth_ref_.at<float>(point->obs_.front()->px[1],
point->obs_.front()->px[0]));
results_.push_back(ConvergedSeed(
point->obs_.front()->px[0], point->obs_.front()->px[1], depth, error));
errors_.push_back(error);
delete seed.ftr;
delete point->obs_.front();
delete point;
++n_converged_seeds_;
}