aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorN.N. <sevyves@users.sourceforge.net>2009-09-08 20:27:20 +0000
committerN.N. <sevyves@users.sourceforge.net>2009-09-08 20:27:20 +0000
commite83d9650cf04791b7016ddac09fbb4393aebe6bd (patch)
tree547f5b59237d500b0e504584bbffcc1957a11c55
parent002d3246a49bb6f0c2dbe9723f5ca573b0ff8710 (diff)
fixed alpha parameter
svn path=/trunk/externals/pdp_opencv/; revision=12257
-rw-r--r--pdp_opencv_athreshold-help.pd4
-rwxr-xr-xpdp_opencv_bgstats-help.pd70
-rwxr-xr-xpdp_opencv_bgstats.cc16
3 files changed, 46 insertions, 44 deletions
diff --git a/pdp_opencv_athreshold-help.pd b/pdp_opencv_athreshold-help.pd
index 39319ed..790c2b2 100644
--- a/pdp_opencv_athreshold-help.pd
+++ b/pdp_opencv_athreshold-help.pd
@@ -1,4 +1,4 @@
-#N canvas 15 96 1039 729 10;
+#N canvas 20 96 1039 729 10;
#X obj 11 -57 cnv 15 750 250 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 251 -17 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
@@ -60,6 +60,7 @@ the mode BINARY or BINARY:INVERTED;
#X msg 185 364 dim \$1;
#X floatatom 236 367 5 0 0 0 - - -;
#X text 276 365 value to correct the theshold;
+#X obj 70 191 pdp_xv;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
@@ -73,6 +74,7 @@ the mode BINARY or BINARY:INVERTED;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 38 0;
+#X connect 13 0 52 0;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
diff --git a/pdp_opencv_bgstats-help.pd b/pdp_opencv_bgstats-help.pd
index 89e48b4..e7a29a9 100755
--- a/pdp_opencv_bgstats-help.pd
+++ b/pdp_opencv_bgstats-help.pd
@@ -1,4 +1,4 @@
-#N canvas 42 49 734 841 10;
+#N canvas 446 49 734 841 10;
#X obj 39 -180 cnv 15 621 223 empty empty empty 20 12 0 14 -260097
-66577 0;
#X msg 146 -123 open /dev/dv1394/0;
@@ -14,9 +14,8 @@
#X obj 299 -17 pdp_v4l;
#X msg 356 -120 open /dev/video0;
#X obj 480 -140 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
-1 1;
+0 1;
#X obj 480 -113 metro 40;
-#X msg 572 0 close;
#X msg 557 -118 open /dev/video0;
#X obj 500 -15 pdp_v4l2;
#X obj 39 54 cnv 15 621 200 empty empty empty 20 12 0 14 -258113 -66577
@@ -25,13 +24,9 @@
#X obj 89 -23 pdp_ieee1394;
#X text 45 -326 pdp_opencv_bgstats : background and foreground extraction
using a statitical method.;
-#X text 43 -212 Comments and support @ ydegoyon.gmail.com;
+#X text 45 -210 Comments and support @ ydegoyon.gmail.com;
#X text 69 -177 Caemra input;
#X obj 89 196 pdp_opencv_bgstats;
-#X text 88 300 foreground;
-#X obj 194 282 pdp_xv;
-#X text 191 300 background;
-#X msg 168 74 delta \$1;
#X obj 229 74 / 100;
#X floatatom 270 76 5 0 0 0 - - -;
#X floatatom 234 110 5 0 0 0 - - -;
@@ -40,41 +35,46 @@ using a statitical method.;
#X msg 187 145 minarea \$1;
#X text 301 152 ( default : 10x10 );
#X msg 224 172 reset;
-#X text 43 -281 Objects disappear from the foreground after a certain
-amount of time after they disappeared ( delta ) and make noise filtering
-using erosion and dilation steps ( erode paramater ). It also eliminates
-from the foreground object that are less than minarea parameter.;
-#X text 311 68 amount of time after which an object is deleted from
-the foreground ( default : 0.1 seconds );
#X text 273 101 number of iterations of the erode-dilate filter;
#X text 274 111 to eliminate small forms and noise;
#X text 304 141 minimum size of foreground objects;
#X text 268 173 resetting the background;
#X text 274 122 ( default : 2 );
-#X connect 1 0 18 0;
+#X msg 168 73 alpha \$1;
+#X text 312 69 amount of time after which an object is deleted from
+the background ( default : 0.1 seconds );
+#X text 49 301 foreground ( binary );
+#X obj 191 281 pdp_xv;
+#X text 189 300 background;
+#X text 44 -299 Objects disappear from the background after a certain
+amount of time of presence ( alpha ) \, they are then considered as
+background.;
+#X text 46 -259 This object does noise filtering using erosion and
+dilation steps ( erode paramater ). It also eliminates from the foreground
+object that are less than a minumum size ( minarea parameter ).;
+#X connect 1 0 17 0;
#X connect 2 0 3 0;
-#X connect 3 0 18 0;
-#X connect 4 0 18 0;
-#X connect 5 0 18 0;
+#X connect 3 0 17 0;
+#X connect 4 0 17 0;
+#X connect 5 0 17 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 9 0;
-#X connect 9 0 22 0;
+#X connect 9 0 21 0;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
-#X connect 12 0 15 0;
-#X connect 13 0 15 0;
-#X connect 14 0 15 0;
-#X connect 15 0 22 0;
-#X connect 18 0 22 0;
-#X connect 22 0 17 0;
-#X connect 22 1 24 0;
-#X connect 26 0 22 0;
-#X connect 27 0 26 0;
-#X connect 28 0 27 0;
-#X connect 28 0 27 1;
-#X connect 29 0 30 0;
-#X connect 30 0 22 0;
-#X connect 31 0 32 0;
-#X connect 32 0 22 0;
-#X connect 34 0 22 0;
+#X connect 12 0 14 0;
+#X connect 13 0 14 0;
+#X connect 14 0 21 0;
+#X connect 17 0 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 38 0;
+#X connect 22 0 35 0;
+#X connect 23 0 22 0;
+#X connect 23 0 22 1;
+#X connect 24 0 25 0;
+#X connect 25 0 21 0;
+#X connect 26 0 27 0;
+#X connect 27 0 21 0;
+#X connect 29 0 21 0;
+#X connect 35 0 21 0;
diff --git a/pdp_opencv_bgstats.cc b/pdp_opencv_bgstats.cc
index 388367f..b6147ca 100755
--- a/pdp_opencv_bgstats.cc
+++ b/pdp_opencv_bgstats.cc
@@ -52,7 +52,7 @@ typedef struct pdp_opencv_bgstats_struct
int x_erode;
float x_minarea;
- float x_delta;
+ float x_alpha;
int x_frames;
IplImage *foreground, *incoming;
@@ -112,13 +112,13 @@ static void pdp_opencv_bgstats_process_rgb(t_pdp_opencv_bgstats *x)
x->x_modelparams.N1cc = CV_BGFG_FGD_N1CC;
x->x_modelparams.N2cc = CV_BGFG_FGD_N2CC;
x->x_modelparams.is_obj_without_holes = 1;
- x->x_modelparams.alpha1 = CV_BGFG_FGD_ALPHA_1;
x->x_modelparams.alpha2 = CV_BGFG_FGD_ALPHA_2;
x->x_modelparams.alpha3 = CV_BGFG_FGD_ALPHA_3;
x->x_modelparams.T = CV_BGFG_FGD_T;
x->x_modelparams.perform_morphing = x->x_erode;
x->x_modelparams.minArea = x->x_minarea;
- x->x_modelparams.delta = x->x_delta;
+ x->x_modelparams.delta = CV_BGFG_FGD_DELTA;
+ x->x_modelparams.alpha1 = x->x_alpha;
x->x_model = cvCreateFGDStatModel( x->incoming, &x->x_modelparams );
}
else if ( x->x_frames == 5 )
@@ -164,12 +164,12 @@ static void pdp_opencv_bgstats_erode(t_pdp_opencv_bgstats *x, t_floatarg f)
}
}
-static void pdp_opencv_bgstats_delta(t_pdp_opencv_bgstats *x, t_floatarg f)
+static void pdp_opencv_bgstats_alpha(t_pdp_opencv_bgstats *x, t_floatarg f)
{
if ( ( f>0.0 ) && ( x->x_model != NULL ) )
{
- x->x_delta = f;
- x->x_modelparams.delta = f;
+ x->x_alpha = f;
+ x->x_modelparams.alpha1 = f;
cvReleaseBGStatModel( &x->x_model );
x->x_model = cvCreateFGDStatModel( x->incoming, &x->x_modelparams );
}
@@ -281,7 +281,7 @@ void *pdp_opencv_bgstats_new(t_floatarg f)
x->x_erode = 2;
x->x_minarea = 10*10;
- x->x_delta = 0.1; // 0.1 seconds
+ x->x_alpha = 0.1;
x->x_frames = 0;
x->foreground = cvCreateImage(cvSize(x->x_width,x->x_height), IPL_DEPTH_8U, 3);
@@ -309,7 +309,7 @@ void pdp_opencv_bgstats_setup(void)
class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_input_0, gensym("pdp"), A_SYMBOL, A_DEFFLOAT, A_NULL);
class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_minarea, gensym("minarea"), A_DEFFLOAT, A_NULL );
class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_erode, gensym("erode"), A_DEFFLOAT, A_NULL );
- class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_delta, gensym("delta"), A_DEFFLOAT, A_NULL );
+ class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_alpha, gensym("alpha"), A_DEFFLOAT, A_NULL );
class_addmethod(pdp_opencv_bgstats_class, (t_method)pdp_opencv_bgstats_reset, gensym("reset"), A_NULL );
}