From 2971a0a88eb2023d7cbbb366d9ae6764a100bc6b Mon Sep 17 00:00:00 2001 From: "N.N." Date: Tue, 14 Jul 2009 15:46:10 +0000 Subject: added load message svn path=/trunk/externals/pdp_opencv/; revision=11862 --- pdp_opencv_cvk.cc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'pdp_opencv_cvk.cc') diff --git a/pdp_opencv_cvk.cc b/pdp_opencv_cvk.cc index e75accd..5e94737 100755 --- a/pdp_opencv_cvk.cc +++ b/pdp_opencv_cvk.cc @@ -147,7 +147,7 @@ static void pdp_opencv_cvk_process_rgb(t_pdp_opencv_cvk *x) } outlet_float(x->x_outlet1, x->x_dist->data.fl[0]); - // cvReleaseImage( &img32 ); + cvReleaseImage( &img32 ); x->x_classify = 0; } @@ -222,6 +222,8 @@ static void pdp_opencv_cvk_free(t_pdp_opencv_cvk *x) // destroy cv_images cvReleaseImage( &x->rgb ); cvReleaseImage( &x->grey ); + cvReleaseMat( &x->trainData ); + cvReleaseMat( &x->trainClasses ); } @@ -414,6 +416,7 @@ void pdp_opencv_cvk_load(t_pdp_opencv_cvk *x) // convert data matrix sizexsize to vecor row1 = cvReshape( &data, &row_header, 0, 1 ); cvCopy(row1, &row, NULL); + cvReleaseImage( &img ); } // create the classifier @@ -436,6 +439,26 @@ static void pdp_opencv_cvk_classify(t_pdp_opencv_cvk *x) x->x_classify=1; } +static void pdp_opencv_cvk_pload(t_pdp_opencv_cvk *x, t_symbol *path, t_floatarg nsamples ) +{ + if ( (int) nsamples <= 0 ) + { + post( "pdp_opencv_cvk : wrong number of samples : %d", nsamples ); + return; + } + else + { + x->x_nsamples = (int)nsamples; + x->x_rsamples = 0; + cvReleaseMat( &x->trainData ); + cvReleaseMat( &x->trainClasses ); + x->trainData = NULL; + x->trainClasses = NULL; + } + strcpy( x->x_filepath, path->s_name ); + pdp_opencv_cvk_load(x); +} + void *pdp_opencv_cvk_new(t_symbol *s, int argc, t_atom *argv ) { int i; @@ -524,6 +547,7 @@ void pdp_opencv_cvk_setup(void) class_addmethod(pdp_opencv_cvk_class, (t_method)pdp_opencv_cvk_input_0, gensym("pdp"), A_SYMBOL, A_DEFFLOAT, A_NULL); class_addmethod(pdp_opencv_cvk_class, (t_method)pdp_opencv_cvk_classify, gensym("bang"), A_NULL); + class_addmethod(pdp_opencv_cvk_class, (t_method)pdp_opencv_cvk_pload, gensym("load"), A_SYMBOL, A_DEFFLOAT, A_NULL); } -- cgit v1.2.1