Add new planar tracker features and use the new planar API
authorKeir Mierle <mierle@gmail.com>
Thu, 17 May 2012 02:31:52 +0000 (02:31 +0000)
committerKeir Mierle <mierle@gmail.com>
Thu, 17 May 2012 02:31:52 +0000 (02:31 +0000)
commit0a917fa1c36f0544867297442f00216bf1021577
tree316845917aacb280fb5e615317a939fcc47ad2d2
parent7e5348f4c5a464ebf3ec7f1bf532a0658f388283
Add new planar tracker features and use the new planar API

This commit removes the use of the legacy RegionTracker API from
Blender, and replaces it with the new TrackRegion API. This also
adds several features to the planar tracker in libmv:

- Do a brute-force initialization of tracking similar to "Hybrid"
  mode in the stable release, but using all floats. This is slower
  but more accurate. It is still necessary to evaluate if the
  performance loss is worth it. In particular, this change is
  necessary to support high bit depth imagery.

- Add support for masks over the search window. This is a step
  towards supporting user-defined tracker masks. The tracker masks
  will make it easy for users to make a mask for e.g. a ball.

- Add Pearson product moment correlation coefficient checking (aka
  "Correlation" in the UI. This causes tracking failure if the
  tracked patch is not linearly related to the template.

- Add support for warping a few points in addition to the supplied
  points. This is useful because the tracking code deliberately
  does not expose the underlying warp representation. Instead,
  warps are specified in an aparametric way via the correspondences.

- Remove the "num_samples_xy" concept and replace it with
  automatic determination of the number of samples. This makes the
  API easier for users.

- Fix various bugs in the parameterizations.

There remains a bug with subpixel precision tracking when in
"keyframe" mode; this will get fixed shortly.
extern/libmv/libmv-capi.cpp
extern/libmv/libmv-capi.h
extern/libmv/libmv/tracking/esm_region_tracker.cc
extern/libmv/libmv/tracking/track_region.cc
extern/libmv/libmv/tracking/track_region.h
source/blender/blenkernel/intern/tracking.c
source/blender/makesdna/DNA_tracking_types.h