Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/libmv/libmv-capi.cpp')
-rw-r--r--extern/libmv/libmv-capi.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp
index aa05279d731..ed89f8cbfb3 100644
--- a/extern/libmv/libmv-capi.cpp
+++ b/extern/libmv/libmv-capi.cpp
@@ -36,6 +36,8 @@
#include "Math/v3d_optimization.h"
#include "libmv/tracking/esm_region_tracker.h"
+#include "libmv/tracking/brute_region_tracker.h"
+#include "libmv/tracking/hybrid_region_tracker.h"
#include "libmv/tracking/klt_region_tracker.h"
#include "libmv/tracking/trklt_region_tracker.h"
#include "libmv/tracking/lmicklt_region_tracker.h"
@@ -109,18 +111,33 @@ void libmv_setLoggingVerbosity(int verbosity)
/* ************ RegionTracker ************ */
-libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size)
+libmv_RegionTracker *libmv_pyramidRegionTrackerNew(int max_iterations, int pyramid_level, int half_window_size)
{
- libmv::EsmRegionTracker *klt_region_tracker = new libmv::EsmRegionTracker;
+ libmv::EsmRegionTracker *esm_region_tracker = new libmv::EsmRegionTracker;
+ esm_region_tracker->half_window_size = half_window_size;
+ esm_region_tracker->max_iterations = max_iterations;
+ esm_region_tracker->min_determinant = 1e-4;
- 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 *pyramid_region_tracker =
+ new libmv::PyramidRegionTracker(esm_region_tracker, pyramid_level);
- libmv::PyramidRegionTracker *region_tracker =
- new libmv::PyramidRegionTracker(klt_region_tracker, pyramid_level);
+ return (libmv_RegionTracker *)pyramid_region_tracker;
+}
+
+libmv_RegionTracker *libmv_hybridRegionTrackerNew(int max_iterations, int half_window_size)
+{
+ libmv::EsmRegionTracker *esm_region_tracker = new libmv::EsmRegionTracker;
+ esm_region_tracker->half_window_size = half_window_size;
+ esm_region_tracker->max_iterations = max_iterations;
+ esm_region_tracker->min_determinant = 1e-4;
+
+ libmv::BruteRegionTracker *brute_region_tracker = new libmv::BruteRegionTracker;
+ brute_region_tracker->half_window_size = half_window_size;
+
+ libmv::HybridRegionTracker *hybrid_region_tracker =
+ new libmv::HybridRegionTracker(brute_region_tracker, esm_region_tracker);
- return (libmv_RegionTracker *)region_tracker;
+ return (libmv_RegionTracker *)hybrid_region_tracker;
}
static void floatBufToImage(const float *buf, int width, int height, libmv::FloatImage *image)