From 18f5322f7c2145b772ab4d47a9d4cf890222b080 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 17 Aug 2011 17:12:10 +0000 Subject: Camera tracking integration =========================== - Bundling new libmv, issues with undefined uint and C99 functions should gone. - Changes to Detect operator to match new API. --- source/blender/blenkernel/BKE_tracking.h | 2 +- source/blender/blenkernel/intern/tracking.c | 12 ++++++------ source/blender/editors/space_clip/tracking_ops.c | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h index 3681cb5f0e4..efb55c1c803 100644 --- a/source/blender/blenkernel/BKE_tracking.h +++ b/source/blender/blenkernel/BKE_tracking.h @@ -84,7 +84,7 @@ void BKE_tracking_projection_matrix(struct MovieTracking *tracking, int framenr, void BKE_tracking_apply_intrinsics(struct MovieTracking *tracking, float co[2], float nco[2]); void BKE_tracking_invert_intrinsics(struct MovieTracking *tracking, float co[2], float nco[2]); -void BKE_tracking_detect(struct MovieTracking *tracking, struct ImBuf *imbuf, int framenr, int margin, int min_trackness, int min_distance); +void BKE_tracking_detect(struct MovieTracking *tracking, struct ImBuf *imbuf, int framenr, int margin, int count, int min_distance); struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking *tracking, int bundlenr); diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index a1db0eb8dd0..b111909a3bd 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -1363,22 +1363,22 @@ static unsigned char *acquire_ucharbuf(ImBuf *ibuf) } #endif -void BKE_tracking_detect(MovieTracking *tracking, ImBuf *ibuf, int framenr, int margin, int min_trackness, int min_distance) +void BKE_tracking_detect(MovieTracking *tracking, ImBuf *ibuf, int framenr, int margin, int count, int min_distance) { #ifdef WITH_LIBMV - struct libmv_Corners *corners; + struct libmv_Features *features; unsigned char *pixels= acquire_ucharbuf(ibuf); int a; - corners= libmv_detectCorners(pixels, ibuf->x, ibuf->y, ibuf->x, margin, min_trackness, min_distance); + features= libmv_detectFeatures(pixels, ibuf->x, ibuf->y, ibuf->x, margin, count, min_distance); MEM_freeN(pixels); - a= libmv_countCorners(corners); + a= libmv_countFeatures(features); while(a--) { MovieTrackingTrack *track; double x, y, size, score; - libmv_getCorner(corners, a, &x, &y, &score, &size); + libmv_getFeature(features, a, &x, &y, &score, &size); track= BKE_tracking_add_track(tracking, x/ibuf->x, 1.0f-(y/ibuf->y), framenr, ibuf->x, ibuf->y); track->flag|= SELECT; @@ -1386,7 +1386,7 @@ void BKE_tracking_detect(MovieTracking *tracking, ImBuf *ibuf, int framenr, int track->search_flag|= SELECT; } - libmv_destroyCorners(corners); + libmv_destroyFeatures(features); #endif } diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index b6229894378..64b7a8ffeff 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -2175,7 +2175,7 @@ static int detect_features_exec(bContext *C, wmOperator *op) ImBuf *ibuf= BKE_movieclip_acquire_ibuf_flag(clip, &sc->user, 0); MovieTrackingTrack *track= clip->tracking.tracks.first; int margin= RNA_int_get(op->ptr, "margin"); - int min_trackness= RNA_int_get(op->ptr, "min_trackness"); + int count= RNA_int_get(op->ptr, "count"); int min_distance= RNA_int_get(op->ptr, "min_distance"); /* deselect existing tracks */ @@ -2187,7 +2187,7 @@ static int detect_features_exec(bContext *C, wmOperator *op) track= track->next; } - BKE_tracking_detect(&clip->tracking, ibuf, sc->user.framenr, margin, min_trackness, min_distance); + BKE_tracking_detect(&clip->tracking, ibuf, sc->user.framenr, margin, count, min_distance); IMB_freeImBuf(ibuf); @@ -2212,7 +2212,7 @@ void CLIP_OT_detect_features(wmOperatorType *ot) /* properties */ RNA_def_int(ot->srna, "margin", 16, 0, INT_MAX, "Margin", "Only corners further than margin pixels from the image edges are considered", 0, 300); - RNA_def_int(ot->srna, "min_trackness", 16, 0, INT_MAX, "Trackness", "Minimum score to add a corner", 0, 300); + RNA_def_int(ot->srna, "count", 50, 1, INT_MAX, "Count", "Count of corners to detect", 0, 300); RNA_def_int(ot->srna, "min_distance", 120, 0, INT_MAX, "Distance", "Minimal distance accepted between two corners", 0, 300); } -- cgit v1.2.3