[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41416] branches/soc-2011-tomato/source/ blender: Camera tracking integration

Sergey Sharybin g.ulairi at gmail.com
Mon Oct 31 15:27:33 CET 2011


Revision: 41416
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41416
Author:   nazgul
Date:     2011-10-31 14:27:32 +0000 (Mon, 31 Oct 2011)
Log Message:
-----------
Camera tracking integration
===========================

Remove moravec detector. It doesn't work really fine and it's times slower than fast detector.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-10-31 14:08:14 UTC (rev 41415)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2011-10-31 14:27:32 UTC (rev 41416)
@@ -90,10 +90,6 @@
 			int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer,
 			int place_outside_layer);
 
-void BKE_tracking_detect_moravec(struct MovieTracking *tracking, struct ImBuf *imbuf,
-			int framenr, int margin, int count, int min_distance, struct bGPDlayer *layer,
-			int place_outside_layer);
-
 struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking *tracking, int bundlenr);
 
 void BKE_tracking_stabilization_data(struct MovieTracking *tracking, int framenr, int width, int height, float loc[2], float *scale, float *angle);

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-10-31 14:08:14 UTC (rev 41415)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-10-31 14:27:32 UTC (rev 41416)
@@ -1657,23 +1657,6 @@
 #endif
 }
 
-void BKE_tracking_detect_moravec(MovieTracking *tracking, ImBuf *ibuf,
-			int framenr, int margin, int count, int min_distance, bGPDlayer *layer, int place_outside_layer)
-{
-#ifdef WITH_LIBMV
-	struct libmv_Features *features;
-	unsigned char *pixels= get_ucharbuf(ibuf);
-
-	features= libmv_detectFeaturesMORAVEC(pixels, ibuf->x, ibuf->y, ibuf->x, margin, count, min_distance);
-
-	MEM_freeN(pixels);
-
-	retrieve_libmv_features(tracking, features, framenr, ibuf->x, ibuf->y, layer, place_outside_layer);
-
-	libmv_destroyFeatures(features);
-#endif
-}
-
 MovieTrackingTrack *BKE_tracking_indexed_bundle(MovieTracking *tracking, int bundlenr)
 {
 	MovieTrackingTrack *track= tracking->tracks.first;

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-10-31 14:08:14 UTC (rev 41415)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-10-31 14:27:32 UTC (rev 41416)
@@ -2244,11 +2244,9 @@
 	MovieClip *clip= ED_space_clip(sc);
 	ImBuf *ibuf= BKE_movieclip_get_ibuf_flag(clip, &sc->user, 0);
 	MovieTrackingTrack *track= clip->tracking.tracks.first;
-	int detector= RNA_enum_get(op->ptr, "detector");
 	int placement= RNA_enum_get(op->ptr, "placement");
 	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");
 	int place_outside_layer= 0;
 	bGPDlayer *layer= NULL;
@@ -2267,10 +2265,7 @@
 		track= track->next;
 	}
 
-	if(detector==0)
-		BKE_tracking_detect_fast(&clip->tracking, ibuf, sc->user.framenr, margin, min_trackness, min_distance, layer, place_outside_layer);
-	else
-		BKE_tracking_detect_moravec(&clip->tracking, ibuf, sc->user.framenr, margin, count, min_distance, layer, place_outside_layer);
+	BKE_tracking_detect_fast(&clip->tracking, ibuf, sc->user.framenr, margin, min_trackness, min_distance, layer, place_outside_layer);
 
 	IMB_freeImBuf(ibuf);
 
@@ -2279,40 +2274,8 @@
 	return OPERATOR_FINISHED;
 }
 
-static void detect_features_draw(bContext *C, wmOperator *op)
-{
-	uiLayout *layout = op->layout;
-	wmWindowManager *wm= CTX_wm_manager(C);
-	PointerRNA ptr;
-	int detector= RNA_enum_get(op->ptr, "detector");
-	PropertyRNA *prop_min_trackness;
-	PropertyRNA *prop_count;
-
-	prop_min_trackness= RNA_struct_find_property(op->ptr, "min_trackness");
-	prop_count= RNA_struct_find_property(op->ptr, "count");
-
-	if(detector==0) {
-		RNA_def_property_clear_flag(prop_min_trackness, PROP_HIDDEN);
-		RNA_def_property_flag(prop_count, PROP_HIDDEN);
-	} else {
-		RNA_def_property_flag(prop_min_trackness, PROP_HIDDEN);
-		RNA_def_property_clear_flag(prop_count, PROP_HIDDEN);
-	}
-
-	RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr);
-
-	/* main draw call */
-	uiDefAutoButsRNA(layout, &ptr, NULL, 'V');
-}
-
 void CLIP_OT_detect_features(wmOperatorType *ot)
 {
-	static EnumPropertyItem detector_items[] = {
-			{0, "FAST",		0, "FAST",		"FAST corner detector"},
-			{1, "MORAVEC",	0, "Moravec",	"Moravec corner detector"},
-			{0, NULL, 0, NULL, NULL}
-	};
-
 	static EnumPropertyItem placement_items[] = {
 			{0, "FRAME",			0, "Whole Frame",			"Place markers across the whole frame"},
 			{1, "INSIDE_GPENCIL",	0, "Inside grease pencil",	"Place markers only inside areas oulined with grease pencil"},
@@ -2328,17 +2291,14 @@
 	/* api callbacks */
 	ot->exec= detect_features_exec;
 	ot->poll= space_clip_frame_poll;
-	ot->ui= detect_features_draw;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
 	/* properties */
-	RNA_def_enum(ot->srna, "detector", detector_items, 0, "Detector", "Detector using for detecting features");
 	RNA_def_enum(ot->srna, "placement", placement_items, 0, "Placement", "Placement for detected features");
 	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);
 }
 




More information about the Bf-blender-cvs mailing list