Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_movieclip_types.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_movieclip.h"
#include "BKE_tracking.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "libmv-capi.h"
#include "tracking_private.h"
Go to the source code of this file.
Functions | |
static void | float_rgba_to_gray (const float *rgba, float *gray, int num_pixels, float weight_red, float weight_green, float weight_blue) |
static void | uint8_rgba_to_float_gray (const unsigned char *rgba, float *gray, int num_pixels, float weight_red, float weight_green, float weight_blue) |
static float * | track_get_search_floatbuf (ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, int *r_width, int *r_height) |
static ImBuf * | tracking_context_get_frame_ibuf (MovieClip *clip, MovieClipUser *user, int clip_flag, int framenr) |
static ImBuf * | tracking_context_get_keyframed_ibuf (MovieClip *clip, MovieClipUser *user, int clip_flag, MovieTrackingTrack *track, int curfra, bool backwards, MovieTrackingMarker **r_marker_keyed) |
static ImBuf * | tracking_context_get_reference_ibuf (MovieClip *clip, MovieClipUser *user, int clip_flag, MovieTrackingTrack *track, int curfra, bool backwards, MovieTrackingMarker **reference_marker) |
void | tracking_configure_tracker (const MovieTrackingTrack *track, float *mask, const bool is_backwards, libmv_TrackRegionOptions *options) |
static bool | configure_and_run_tracker (ImBuf *destination_ibuf, MovieTrackingTrack *track, MovieTrackingMarker *reference_marker, MovieTrackingMarker *marker, float *reference_search_area, int reference_search_area_width, int reference_search_area_height, float *mask, const bool is_backward, double dst_pixel_x[5], double dst_pixel_y[5]) |
static bool | refine_marker_reference_frame_get (MovieTrackingTrack *track, MovieTrackingMarker *marker, bool backwards, int *reference_framenr) |
void | BKE_tracking_refine_marker (MovieClip *clip, MovieTrackingTrack *track, MovieTrackingMarker *marker, bool backwards) |
This file contains implementation of blender-side region tracker which is used for 2D feature tracking.
Definition in file tracking_region_tracker.c.
void BKE_tracking_refine_marker | ( | struct MovieClip * | clip, |
struct MovieTrackingTrack * | track, | ||
struct MovieTrackingMarker * | marker, | ||
bool | backwards | ||
) |
Refine marker's position using previously known keyframe. Direction of searching for a keyframe depends on backwards flag, which means if backwards is false, previous keyframe will be as reference.
Definition at line 298 of file tracking_region_tracker.c.
References MovieTrackingTrack::algorithm_flag, BKE_movieclip_get_ibuf_flag(), BKE_movieclip_get_size(), BKE_movieclip_remap_clip_to_scene_frame(), BKE_tracking_track_get_mask(), configure_and_run_tracker(), DNA_struct_default_get, MovieClip::flag, MovieTrackingMarker::flag, MovieClipUser::framenr, MovieTrackingMarker::framenr, IMB_freeImBuf(), MARKER_TRACKED, mask(), MCLIP_TIMECODE_FLAGS, MEM_freeN, MOVIECLIP_CACHE_SKIP, NULL, refine_marker_reference_frame_get(), TRACK_ALGORITHM_FLAG_USE_MASK, track_get_search_floatbuf(), tracking_context_get_reference_ibuf(), and tracking_set_marker_coords_from_tracking().
Referenced by refine_marker_exec().
|
static |
Definition at line 202 of file tracking_region_tracker.c.
References libmv_trackRegion(), mask(), MEM_freeN, NULL, options, result, track_get_search_floatbuf(), tracking_configure_tracker(), tracking_get_marker_coords_for_tracking(), ImBuf::x, and ImBuf::y.
Referenced by BKE_tracking_refine_marker().
|
static |
Convert from float and byte RGBA to gray-scale. Supports different coefficients for RGB.
Definition at line 31 of file tracking_region_tracker.c.
References num_pixels, and usdtokens::rgba().
Referenced by track_get_search_floatbuf().
|
static |
Definition at line 271 of file tracking_region_tracker.c.
References MovieTrackingMarker::flag, MovieTrackingMarker::framenr, MARKER_DISABLED, MovieTrackingTrack::markers, and MovieTrackingTrack::markersnr.
Referenced by BKE_tracking_refine_marker().
|
static |
Get gray-scale float search buffer for given marker and frame.
Definition at line 60 of file tracking_region_tracker.c.
References BKE_tracking_get_search_imbuf(), float_rgba_to_gray(), height, IMB_freeImBuf(), MEM_callocN, NULL, ImBuf::rect, ImBuf::rect_float, uint8_rgba_to_float_gray(), width, ImBuf::x, and ImBuf::y.
Referenced by BKE_tracking_refine_marker(), and configure_and_run_tracker().
void tracking_configure_tracker | ( | const MovieTrackingTrack * | track, |
float * | mask, | ||
bool | is_backwards, | ||
struct libmv_TrackRegionOptions * | options | ||
) |
Fill in libmv tracker options structure with settings need to be used to perform track.
Definition at line 168 of file tracking_region_tracker.c.
References MovieTrackingTrack::algorithm_flag, LIBMV_TRACK_REGION_BACKWARD, LIBMV_TRACK_REGION_FORWARD, mask(), MovieTrackingTrack::minimum_correlation, MovieTrackingTrack::motion_model, NULL, options, TRACK_ALGORITHM_FLAG_USE_BRUTE, TRACK_ALGORITHM_FLAG_USE_MASK, and TRACK_ALGORITHM_FLAG_USE_NORMALIZATION.
Referenced by autotrack_context_init_tracks_for_clip(), and configure_and_run_tracker().
|
static |
Definition at line 104 of file tracking_region_tracker.c.
References BKE_movieclip_get_ibuf_flag(), BKE_movieclip_remap_clip_to_scene_frame(), MovieClipUser::framenr, and MOVIECLIP_CACHE_SKIP.
Referenced by tracking_context_get_keyframed_ibuf(), and tracking_context_get_reference_ibuf().
|
static |
Definition at line 120 of file tracking_region_tracker.c.
References MovieTrackingMarker::framenr, NULL, tracking_context_get_frame_ibuf(), and tracking_get_keyframed_marker().
Referenced by tracking_context_get_reference_ibuf().
|
static |
Definition at line 144 of file tracking_region_tracker.c.
References BKE_tracking_marker_get(), NULL, MovieTrackingTrack::pattern_match, TRACK_MATCH_KEYFRAME, tracking_context_get_frame_ibuf(), and tracking_context_get_keyframed_ibuf().
Referenced by BKE_tracking_refine_marker().
|
static |
Definition at line 45 of file tracking_region_tracker.c.
References num_pixels, and usdtokens::rgba().
Referenced by track_get_search_floatbuf().