svo
Semi-Direct Visual Odometry
|
Patch-matcher for reprojection-matching and epipolar search in triangulation. More...
#include <matcher.h>
Classes | |
struct | Options |
Public Types | |
typedef vk::patch_score::ZMSSD < halfpatch_size_ > | PatchScore |
Public Member Functions | |
Matcher () | |
~Matcher () | |
bool | findMatchDirect (const Point &pt, const Frame &frame, Vector2d &px_cur) |
Find a match by directly applying subpix refinement. | |
bool | findEpipolarMatchDirect (const Frame &ref_frame, const Frame &cur_frame, const Feature &ref_ftr, const double d_estimate, const double d_min, const double d_max, double &depth) |
Find a match by searching along the epipolar line without using any features. | |
void | createPatchFromPatchWithBorder () |
Public Attributes | |
struct svo::Matcher::Options | options_ |
uint8_t * | patch_ |
uint8_t * | patch_with_border_ |
Matrix2d | A_cur_ref_ |
affine warp matrix | |
Vector2d | epi_dir_ |
double | epi_length_ |
length of epipolar line segment in pixels (only used for epipolar search) | |
double | h_inv_ |
hessian of 1d image alignment along epipolar line | |
int | search_level_ |
bool | reject_ |
Feature * | ref_ftr_ |
Vector2d | px_cur_ |
Static Public Attributes | |
static const int | halfpatch_size_ = 4 |
static const int | patch_size_ = 8 |
Patch-matcher for reprojection-matching and epipolar search in triangulation.
typedef vk::patch_score::ZMSSD<halfpatch_size_> svo::Matcher::PatchScore |
bool svo::Matcher::findEpipolarMatchDirect | ( | const Frame & | ref_frame, |
const Frame & | cur_frame, | ||
const Feature & | ref_ftr, | ||
const double | d_estimate, | ||
const double | d_min, | ||
const double | d_max, | ||
double & | depth | ||
) |
Find a match by searching along the epipolar line without using any features.
bool svo::Matcher::findMatchDirect | ( | const Point & | pt, |
const Frame & | frame, | ||
Vector2d & | px_cur | ||
) |
Find a match by directly applying subpix refinement.
IMPORTANT! This function assumes that px_cur is already set to an estimate that is within ~2-3 pixel of the final result!
Matrix2d svo::Matcher::A_cur_ref_ |
affine warp matrix
Vector2d svo::Matcher::epi_dir_ |
double svo::Matcher::epi_length_ |
length of epipolar line segment in pixels (only used for epipolar search)
double svo::Matcher::h_inv_ |
hessian of 1d image alignment along epipolar line
const int svo::Matcher::halfpatch_size_ = 4 [static] |
uint8_t* svo::Matcher::patch_ |
const int svo::Matcher::patch_size_ = 8 [static] |
uint8_t* svo::Matcher::patch_with_border_ |
Vector2d svo::Matcher::px_cur_ |