Skip to content

Commit

Permalink
Exposed and modified part of mono VO pipeline for RANSAC
Browse files Browse the repository at this point in the history
  • Loading branch information
leeclemnet committed May 29, 2019
1 parent 72f9380 commit c4da0b0
Show file tree
Hide file tree
Showing 10 changed files with 437 additions and 251 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ viso2_wrap.cpp
*.so
*.pyc
src/build*
.vscode
10 changes: 0 additions & 10 deletions src/pyviso2.egg-info/PKG-INFO

This file was deleted.

13 changes: 0 additions & 13 deletions src/pyviso2.egg-info/SOURCES.txt

This file was deleted.

1 change: 0 additions & 1 deletion src/pyviso2.egg-info/dependency_links.txt

This file was deleted.

2 changes: 0 additions & 2 deletions src/pyviso2.egg-info/top_level.txt

This file was deleted.

6 changes: 3 additions & 3 deletions src/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
version="0.1.0",
py_modules=["viso2"],
ext_modules=[Extension("_viso2",
sources=["filter.cpp","matcher.cpp","matrix.cpp","reconstruction.cpp",
"triangle.cpp","viso.cpp","viso_stereo.cpp", "viso2.i"],
sources=["filter.cpp", "matcher.cpp", "matrix.cpp", "reconstruction.cpp",
"triangle.cpp", "viso.cpp", "viso_mono.cpp", "viso_stereo.cpp", "viso2.i"],
language="c++",
swig_opts=['-c++','-threads'],
swig_opts=['-c++', '-threads'],
extra_compile_args=['-msse3'],
include_dirs=[numpy.get_include()])])
16 changes: 16 additions & 0 deletions src/viso2.i
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

%{
#define SWIG_FILE_WITH_INIT
#include "viso_mono.h"
#include "viso_stereo.h"
#include "reconstruction.h"
%}
Expand All @@ -22,6 +23,7 @@
// rename the crazy nested class parameter scheme
%rename (VO_parameters) VisualOdometry::parameters;
%rename (Matcher_parameters) Matcher::parameters;
%rename (Mono_parameters) VisualOdometryMono::parameters;
%rename (Stereo_parameters) VisualOdometryStereo::parameters;

%rename (p_match) Matcher::p_match;
Expand All @@ -45,6 +47,7 @@ typedef int int32_t;

// what interfaces to SWIG?
%include "viso.h"
%include "viso_mono.h"
%include "viso_stereo.h"
%include "matrix.h"
%include "matcher.h"
Expand All @@ -57,6 +60,19 @@ namespace std {
}

// apply the numpy typemap to enable a more comforable call with 2D images
%extend VisualOdometryMono {
bool process_frame(unsigned char* image1, int rows1, int cols1, bool replace=false)
{
int dims[] = {cols1, rows1, cols1};
return $self->process(image1, dims, replace);
}
bool process_frame(unsigned char* image1, int rows1, int cols1, unsigned char* image2, int rows2, int cols2, bool replace=false)
{
int dims[] = {cols1, rows1, cols1};
return $self->process(image1, image2, dims, replace);
}
}

%extend VisualOdometryStereo {
bool process_frame(unsigned char* image1, int rows1, int cols1, unsigned char* image2, int rows2, int cols2, bool replace=false)
{
Expand Down
95 changes: 95 additions & 0 deletions src/viso2.py
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,101 @@ def __init__(self):
VO_parameters_swigregister = _viso2.VO_parameters_swigregister
VO_parameters_swigregister(VO_parameters)

class VisualOdometryMono(VisualOdometry):
"""Proxy of C++ VisualOdometryMono class."""

__swig_setmethods__ = {}
for _s in [VisualOdometry]:
__swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
__setattr__ = lambda self, name, value: _swig_setattr(self, VisualOdometryMono, name, value)
__swig_getmethods__ = {}
for _s in [VisualOdometry]:
__swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
__getattr__ = lambda self, name: _swig_getattr(self, VisualOdometryMono, name)
__repr__ = _swig_repr

def __init__(self, param):
"""__init__(self, param) -> VisualOdometryMono"""
this = _viso2.new_VisualOdometryMono(param)
try:
self.this.append(this)
except __builtin__.Exception:
self.this = this
__swig_destroy__ = _viso2.delete_VisualOdometryMono
__del__ = lambda self: None

def process(self, *args):
"""
process(self, I, dims, replace=False) -> bool
process(self, I, dims) -> bool
process(self, I1, I2, dims, replace=False) -> bool
process(self, I1, I2, dims) -> bool
"""
return _viso2.VisualOdometryMono_process(self, *args)


def getInlierMatches(self):
"""getInlierMatches(self) -> MatchVector"""
return _viso2.VisualOdometryMono_getInlierMatches(self)


def process_frame(self, *args):
"""
process_frame(self, image1, replace=False) -> bool
process_frame(self, image1) -> bool
process_frame(self, image1, image2, replace=False) -> bool
process_frame(self, image1, image2) -> bool
"""
return _viso2.VisualOdometryMono_process_frame(self, *args)

VisualOdometryMono_swigregister = _viso2.VisualOdometryMono_swigregister
VisualOdometryMono_swigregister(VisualOdometryMono)

class Mono_parameters(VO_parameters):
"""Proxy of C++ VisualOdometryMono::parameters class."""

__swig_setmethods__ = {}
for _s in [VO_parameters]:
__swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
__setattr__ = lambda self, name, value: _swig_setattr(self, Mono_parameters, name, value)
__swig_getmethods__ = {}
for _s in [VO_parameters]:
__swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
__getattr__ = lambda self, name: _swig_getattr(self, Mono_parameters, name)
__repr__ = _swig_repr
__swig_setmethods__["height"] = _viso2.Mono_parameters_height_set
__swig_getmethods__["height"] = _viso2.Mono_parameters_height_get
if _newclass:
height = _swig_property(_viso2.Mono_parameters_height_get, _viso2.Mono_parameters_height_set)
__swig_setmethods__["pitch"] = _viso2.Mono_parameters_pitch_set
__swig_getmethods__["pitch"] = _viso2.Mono_parameters_pitch_get
if _newclass:
pitch = _swig_property(_viso2.Mono_parameters_pitch_get, _viso2.Mono_parameters_pitch_set)
__swig_setmethods__["ransac_iters"] = _viso2.Mono_parameters_ransac_iters_set
__swig_getmethods__["ransac_iters"] = _viso2.Mono_parameters_ransac_iters_get
if _newclass:
ransac_iters = _swig_property(_viso2.Mono_parameters_ransac_iters_get, _viso2.Mono_parameters_ransac_iters_set)
__swig_setmethods__["inlier_threshold"] = _viso2.Mono_parameters_inlier_threshold_set
__swig_getmethods__["inlier_threshold"] = _viso2.Mono_parameters_inlier_threshold_get
if _newclass:
inlier_threshold = _swig_property(_viso2.Mono_parameters_inlier_threshold_get, _viso2.Mono_parameters_inlier_threshold_set)
__swig_setmethods__["motion_threshold"] = _viso2.Mono_parameters_motion_threshold_set
__swig_getmethods__["motion_threshold"] = _viso2.Mono_parameters_motion_threshold_get
if _newclass:
motion_threshold = _swig_property(_viso2.Mono_parameters_motion_threshold_get, _viso2.Mono_parameters_motion_threshold_set)

def __init__(self):
"""__init__(self) -> Mono_parameters"""
this = _viso2.new_Mono_parameters()
try:
self.this.append(this)
except __builtin__.Exception:
self.this = this
__swig_destroy__ = _viso2.delete_Mono_parameters
__del__ = lambda self: None
Mono_parameters_swigregister = _viso2.Mono_parameters_swigregister
Mono_parameters_swigregister(Mono_parameters)

class VisualOdometryStereo(VisualOdometry):
"""Proxy of C++ VisualOdometryStereo class."""

Expand Down
Loading

0 comments on commit c4da0b0

Please sign in to comment.