diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-11-10 15:16:40 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-11-10 15:16:40 +0400 |
commit | d30987fd59cbd228fbec151a219c55280fe6e53d (patch) | |
tree | 2cb7e47d1230f4c795332c74853b4bbf0f7ef7a8 /extern | |
parent | 55d0cb04aa7623ac4daa185fd502f9d381a00900 (diff) |
Camera tracking integration: more code cleanup
Diffstat (limited to 'extern')
-rw-r--r-- | extern/libmv/libmv-capi.cpp | 33 | ||||
-rw-r--r-- | extern/libmv/libmv-capi.h | 5 |
2 files changed, 10 insertions, 28 deletions
diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp index 4d17aa6f538..9d6cfd5d17a 100644 --- a/extern/libmv/libmv-capi.cpp +++ b/extern/libmv/libmv-capi.cpp @@ -59,13 +59,6 @@ # define snprintf _snprintf #endif -#define DEFAULT_WINDOW_HALFSIZE 5 - -typedef struct libmv_RegionTracker { - libmv::EsmRegionTracker *klt_region_tracker; - libmv::RegionTracker *region_tracker; -} libmv_RegionTracker; - typedef struct libmv_Reconstruction { libmv::EuclideanReconstruction reconstruction; @@ -113,22 +106,18 @@ void libmv_setLoggingVerbosity(int verbosity) /* ************ RegionTracker ************ */ -libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level) +libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size) { libmv::EsmRegionTracker *klt_region_tracker = new libmv::EsmRegionTracker; - klt_region_tracker->half_window_size = DEFAULT_WINDOW_HALFSIZE; + klt_region_tracker->half_window_size = half_window_size; klt_region_tracker->max_iterations = max_iterations; klt_region_tracker->min_determinant = 1e-4; libmv::PyramidRegionTracker *region_tracker = new libmv::PyramidRegionTracker(klt_region_tracker, pyramid_level); - libmv_RegionTracker *configured_region_tracker = new libmv_RegionTracker; - configured_region_tracker->klt_region_tracker = klt_region_tracker; - configured_region_tracker->region_tracker = region_tracker; - - return configured_region_tracker; + return (libmv_RegionTracker *)region_tracker; } static void floatBufToImage(const float *buf, int width, int height, libmv::FloatImage *image) @@ -270,18 +259,11 @@ static void saveBytesImage(char *prefix, unsigned char *data, int width, int hei #endif int libmv_regionTrackerTrack(libmv_RegionTracker *libmv_tracker, const float *ima1, const float *ima2, - int width, int height, int half_window_size, - double x1, double y1, double *x2, double *y2) + int width, int height, double x1, double y1, double *x2, double *y2) { - libmv::RegionTracker *region_tracker; - libmv::EsmRegionTracker *klt_region_tracker; + libmv::RegionTracker *region_tracker = (libmv::RegionTracker *)libmv_tracker; libmv::FloatImage old_patch, new_patch; - klt_region_tracker = libmv_tracker->klt_region_tracker; - region_tracker = libmv_tracker->region_tracker; - - klt_region_tracker->half_window_size = half_window_size; - floatBufToImage(ima1, width, height, &old_patch); floatBufToImage(ima2, width, height, &new_patch); @@ -304,8 +286,9 @@ int libmv_regionTrackerTrack(libmv_RegionTracker *libmv_tracker, const float *im void libmv_regionTrackerDestroy(libmv_RegionTracker *libmv_tracker) { - delete libmv_tracker->region_tracker; - delete libmv_tracker; + libmv::RegionTracker *region_tracker= (libmv::RegionTracker *)libmv_tracker; + + delete region_tracker; } /* ************ Tracks ************ */ diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h index d378afc5ea8..8252a11739b 100644 --- a/extern/libmv/libmv-capi.h +++ b/extern/libmv/libmv-capi.h @@ -43,10 +43,9 @@ void libmv_startDebugLogging(void); void libmv_setLoggingVerbosity(int verbosity); /* RegionTracker */ -struct libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level); +struct libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size); int libmv_regionTrackerTrack(struct libmv_RegionTracker *libmv_tracker, const float *ima1, const float *ima2, - int width, int height, int half_window_size, - double x1, double y1, double *x2, double *y2); + int width, int height, double x1, double y1, double *x2, double *y2); void libmv_regionTrackerDestroy(struct libmv_RegionTracker *libmv_tracker); /* SAD Tracker */ |