diff options
-rwxr-xr-x | externals/pix_opencv_hu_moments-help.pd | 160 | ||||
-rwxr-xr-x | externals/pix_opencv_hu_moments.cc | 207 | ||||
-rwxr-xr-x | externals/pix_opencv_hu_moments.h | 86 |
3 files changed, 0 insertions, 453 deletions
diff --git a/externals/pix_opencv_hu_moments-help.pd b/externals/pix_opencv_hu_moments-help.pd deleted file mode 100755 index e2f5eaa6..00000000 --- a/externals/pix_opencv_hu_moments-help.pd +++ /dev/null @@ -1,160 +0,0 @@ -#N canvas 1 49 820 711 10; -#X obj 13 0 gemhead; -#X obj 30 439 pix_texture; -#X obj 30 467 square 2; -#X obj 506 536 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 -0; -#N canvas 0 22 454 304 gemwin 0; -#X obj 67 89 outlet; -#X obj 67 10 inlet; -#X obj 67 41 route create; -#X msg 67 70 set destroy; -#X msg 182 68 set create; -#N canvas 87 154 247 179 Gem.init 0; -#X obj 118 46 loadbang; -#X msg 118 81 reset; -#X obj 118 113 outlet; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X restore 289 80 pd Gem.init; -#X obj 171 266 gemwin; -#X msg 164 226 create \, 1; -#X msg 252 229 destroy; -#X msg 292 186 frame 5; -#X obj 173 176 t b b b; -#X connect 1 0 2 0; -#X connect 2 0 3 0; -#X connect 2 0 10 0; -#X connect 2 1 4 0; -#X connect 2 1 8 0; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 7 0 6 0; -#X connect 8 0 6 0; -#X connect 9 0 6 0; -#X connect 10 0 7 0; -#X connect 10 2 9 0; -#X restore 516 580 pd gemwin; -#X msg 516 562 destroy; -#X obj 114 -18 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 114 11 openpanel; -#X msg 114 31 open \$1; -#X obj 15 182 cnv 15 400 250 empty empty empty 20 12 0 14 -4034 -66577 -0; -#X text 514 539 Create window and render; -#X obj 203 30 loadbang; -#X msg 203 55 colorspace RGBA; -#X msg 307 55 colorspace RGB; -#X msg 266 29 colorspace Grey; -#X obj 32 235 pix_opencv_hu_moments; -#X msg 82 197 binary \$1; -#X obj 152 198 tgl 15 0 sbin empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X text 171 198 treat incoming frames as binary data; -#X text 187 -19 Written by Yves Degoyon ( ydegoyon@gmail.com ); -#X text 186 -67 pix_opencv_hu_moments :: Calculates the hu moments -of contours.; -#X obj 135 256 unpack f f f f f f f; -#X floatatom 145 283 30 0 0 0 - - h1; -#X text 125 282 h1; -#X floatatom 156 305 30 0 0 0 - - h2; -#X floatatom 167 326 30 0 0 0 - - h3; -#X floatatom 180 347 30 0 0 0 - - h4; -#X floatatom 196 369 30 0 0 0 - - h5; -#X floatatom 208 389 30 0 0 0 - - h6; -#X floatatom 217 412 30 0 0 0 - - h7; -#X text 136 304 h2; -#X text 148 325 h3; -#X text 161 346 h4; -#X text 176 368 h5; -#X text 188 388 h6; -#X text 197 411 h7; -#X obj 115 104 pix_image; -#X text 187 -43 Load here with a simple patterns image and compare -the moments.; -#X obj 529 -15 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 529 14 openpanel; -#X msg 529 34 open \$1; -#X obj 430 185 cnv 15 400 250 empty empty empty 20 12 0 14 -4034 -66577 -0; -#X obj 618 33 loadbang; -#X msg 618 58 colorspace RGBA; -#X msg 722 58 colorspace RGB; -#X msg 681 32 colorspace Grey; -#X obj 447 238 pix_opencv_hu_moments; -#X msg 497 200 binary \$1; -#X obj 567 201 tgl 15 0 sbin empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X text 593 201 treat incoming frames as binary data; -#X obj 550 259 unpack f f f f f f f; -#X floatatom 560 286 30 0 0 0 - - h1; -#X text 540 285 h1; -#X floatatom 571 308 30 0 0 0 - - h2; -#X floatatom 582 329 30 0 0 0 - - h3; -#X floatatom 595 350 30 0 0 0 - - h4; -#X floatatom 611 372 30 0 0 0 - - h5; -#X floatatom 623 392 30 0 0 0 - - h6; -#X floatatom 632 415 30 0 0 0 - - h7; -#X text 551 307 h2; -#X text 563 328 h3; -#X text 576 349 h4; -#X text 591 371 h5; -#X text 603 391 h6; -#X text 612 414 h7; -#X obj 484 117 pix_image; -#X obj 115 133 translateXYZ -2 0 0; -#X obj 113 162 separator; -#X obj 447 445 pix_texture; -#X obj 447 473 square 2; -#X floatatom 216 100 5 0 0 0 - - -; -#X obj 191 161 translateXYZ 4 0 0; -#X connect 0 0 36 0; -#X connect 1 0 2 0; -#X connect 4 0 5 0; -#X connect 5 0 4 0; -#X connect 6 0 7 0; -#X connect 7 0 8 0; -#X connect 8 0 36 0; -#X connect 11 0 12 0; -#X connect 12 0 36 0; -#X connect 13 0 36 0; -#X connect 14 0 36 0; -#X connect 15 0 1 0; -#X connect 15 1 21 0; -#X connect 16 0 15 0; -#X connect 17 0 16 0; -#X connect 21 0 22 0; -#X connect 21 1 24 0; -#X connect 21 2 25 0; -#X connect 21 3 26 0; -#X connect 21 4 27 0; -#X connect 21 5 28 0; -#X connect 21 6 29 0; -#X connect 36 0 66 0; -#X connect 38 0 39 0; -#X connect 39 0 40 0; -#X connect 40 0 65 0; -#X connect 42 0 43 0; -#X connect 43 0 65 0; -#X connect 44 0 65 0; -#X connect 45 0 65 0; -#X connect 46 0 68 0; -#X connect 46 1 50 0; -#X connect 47 0 46 0; -#X connect 48 0 47 0; -#X connect 50 0 51 0; -#X connect 50 1 53 0; -#X connect 50 2 54 0; -#X connect 50 3 55 0; -#X connect 50 4 56 0; -#X connect 50 5 57 0; -#X connect 50 6 58 0; -#X connect 65 0 46 0; -#X connect 66 0 67 0; -#X connect 66 0 15 0; -#X connect 67 0 71 0; -#X connect 68 0 69 0; -#X connect 70 0 66 1; -#X connect 71 0 65 0; diff --git a/externals/pix_opencv_hu_moments.cc b/externals/pix_opencv_hu_moments.cc deleted file mode 100755 index 6665107b..00000000 --- a/externals/pix_opencv_hu_moments.cc +++ /dev/null @@ -1,207 +0,0 @@ -//////////////////////////////////////////////////////// -// -// GEM - Graphics Environment for Multimedia -// -// zmoelnig@iem.kug.ac.at -// -// Implementation file -// -// Copyright (c) 1997-2000 Mark Danks. -// Copyright (c) Günther Geiger. -// Copyright (c) 2001-2002 IOhannes m zmoelnig. forum::für::umläute. IEM -// Copyright (c) 2002 James Tittle & Chris Clepper -// For information on usage and redistribution, and for a DISCLAIMER OF ALL -// WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. -// -///////////////////////////////////////////////////////// - -#include "pix_opencv_hu_moments.h" - -CPPEXTERN_NEW(pix_opencv_hu_moments) - -///////////////////////////////////////////////////////// -// -// pix_opencv_hu_moments -// -///////////////////////////////////////////////////////// -// Constructor -// -///////////////////////////////////////////////////////// -pix_opencv_hu_moments :: pix_opencv_hu_moments() -{ - m_dataout = outlet_new(this->x_obj, &s_anything); - - comp_xsize = 320; - comp_ysize = 240; - - x_binary = 0; - - rgba = cvCreateImage(cvSize(comp_xsize,comp_ysize), IPL_DEPTH_8U, 4); - rgb = cvCreateImage(cvSize(comp_xsize,comp_ysize), IPL_DEPTH_8U, 3); - gray = cvCreateImage(cvSize(comp_xsize,comp_ysize), IPL_DEPTH_8U, 1); - -} - -///////////////////////////////////////////////////////// -// Destructor -// -///////////////////////////////////////////////////////// -pix_opencv_hu_moments :: ~pix_opencv_hu_moments() -{ - //Destroy cv_images to clean memory - cvReleaseImage(&rgba); - cvReleaseImage(&rgb); - cvReleaseImage(&gray); -} - -///////////////////////////////////////////////////////// -// processImage -// -///////////////////////////////////////////////////////// -void pix_opencv_hu_moments :: processRGBAImage(imageStruct &image) -{ - if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!rgba)) - { - - this->comp_xsize = image.xsize; - this->comp_ysize = image.ysize; - - //Destroy cv_images to clean memory - if ( rgba ) - { - cvReleaseImage(&rgba); - cvReleaseImage(&rgb); - cvReleaseImage(&gray); - } - - //create the orig image with new size - rgba = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 4); - rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3); - gray = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 1); - } - - memcpy( rgba->imageData, image.data, image.xsize*image.ysize*4 ); - cvCvtColor(rgba, gray, CV_BGRA2GRAY); - - cvMoments( gray, &x_moments, x_binary ); - cvGetHuMoments( &x_moments, &x_humoments ); - - SETFLOAT(&rlist[0], x_humoments.hu1); - SETFLOAT(&rlist[1], x_humoments.hu2); - SETFLOAT(&rlist[2], x_humoments.hu3); - SETFLOAT(&rlist[3], x_humoments.hu4); - SETFLOAT(&rlist[4], x_humoments.hu5); - SETFLOAT(&rlist[5], x_humoments.hu6); - SETFLOAT(&rlist[6], x_humoments.hu7); - - outlet_list( m_dataout, 0, 7, rlist ); -} - -void pix_opencv_hu_moments :: processRGBImage(imageStruct &image) -{ - unsigned char *pixels = image.data; - - if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!rgb)) { - - this->comp_xsize = image.xsize; - this->comp_ysize = image.ysize; - - //Destroy cv_images to clean memory - if ( rgb ) - { - cvReleaseImage(&rgba); - cvReleaseImage(&rgb); - cvReleaseImage(&gray); - } - - //create the orig image with new size - rgba = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 4); - rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3); - gray = cvCreateImage(cvSize(rgb->width,rgb->height), IPL_DEPTH_8U, 1); - - } - memcpy( rgb->imageData, image.data, image.xsize*image.ysize*3 ); - cvCvtColor(rgb, gray, CV_RGB2GRAY); - - cvMoments( gray, &x_moments, x_binary ); - cvGetHuMoments( &x_moments, &x_humoments ); - - SETFLOAT(&rlist[0], x_humoments.hu1); - SETFLOAT(&rlist[1], x_humoments.hu2); - SETFLOAT(&rlist[2], x_humoments.hu3); - SETFLOAT(&rlist[3], x_humoments.hu4); - SETFLOAT(&rlist[4], x_humoments.hu5); - SETFLOAT(&rlist[5], x_humoments.hu6); - SETFLOAT(&rlist[6], x_humoments.hu7); - - outlet_list( m_dataout, 0, 7, rlist ); -} - -void pix_opencv_hu_moments :: processYUVImage(imageStruct &image) -{ - post( "pix_opencv_hu_moments : yuv format not supported" ); -} - -void pix_opencv_hu_moments :: processGrayImage(imageStruct &image) -{ - unsigned char *pixels = image.data; - - if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!rgb)) { - - this->comp_xsize = image.xsize; - this->comp_ysize = image.ysize; - - //Destroy cv_images to clean memory - if ( rgb ) - { - cvReleaseImage(&rgba); - cvReleaseImage(&rgb); - cvReleaseImage(&gray); - } - - //create the orig image with new size - rgba = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 4); - rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3); - gray = cvCreateImage(cvSize(rgb->width,rgb->height), IPL_DEPTH_8U, 1); - - } - memcpy( gray->imageData, image.data, image.xsize*image.ysize ); - - cvMoments( gray, &x_moments, x_binary ); - cvGetHuMoments( &x_moments, &x_humoments ); - - SETFLOAT(&rlist[0], x_humoments.hu1); - SETFLOAT(&rlist[1], x_humoments.hu2); - SETFLOAT(&rlist[2], x_humoments.hu3); - SETFLOAT(&rlist[3], x_humoments.hu4); - SETFLOAT(&rlist[4], x_humoments.hu5); - SETFLOAT(&rlist[5], x_humoments.hu6); - SETFLOAT(&rlist[6], x_humoments.hu7); - - outlet_list( m_dataout, 0, 7, rlist ); -} - -///////////////////////////////////////////////////////// -// floatThreshMess -// -///////////////////////////////////////////////////////// -void pix_opencv_hu_moments :: floatBinaryMess (float binary) -{ - if ( ((int)binary==1) || ((int)binary==0) ) x_binary = (int)binary; -} - -///////////////////////////////////////////////////////// -// static member function -// -///////////////////////////////////////////////////////// -void pix_opencv_hu_moments :: obj_setupCallback(t_class *classPtr) -{ - class_addmethod(classPtr, (t_method)&pix_opencv_hu_moments::floatBinaryMessCallback, - gensym("binary"), A_FLOAT, A_NULL); -} - -void pix_opencv_hu_moments :: floatBinaryMessCallback(void *data, t_floatarg binary) -{ - GetMyClass(data)->floatBinaryMess((float)binary); -} - diff --git a/externals/pix_opencv_hu_moments.h b/externals/pix_opencv_hu_moments.h deleted file mode 100755 index 20c031ce..00000000 --- a/externals/pix_opencv_hu_moments.h +++ /dev/null @@ -1,86 +0,0 @@ -/*----------------------------------------------------------------- -LOG - GEM - Graphics Environment for Multimedia - - Hu moments calculator object - - Copyright (c) 1997-1999 Mark Danks. mark@danks.org - Copyright (c) Günther Geiger. geiger@epy.co.at - Copyright (c) 2001-2002 IOhannes m zmoelnig. forum::für::umläute. IEM. zmoelnig@iem.kug.ac.at - Copyright (c) 2002 James Tittle & Chris Clepper - For information on usage and redistribution, and for a DISCLAIMER OF ALL - WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. - ------------------------------------------------------------------*/ - -#ifndef INCLUDE_PIX_OPENCV_HU_MOMENTS_H_ -#define INCLUDE_PIX_OPENCV_HU_MOMENTS_H_ - -#include "Base/GemPixObj.h" - -#ifndef _EiC -#include "cv.h" -#endif - -/*----------------------------------------------------------------- -------------------------------------------------------------------- -CLASS - pix_opencv_hu_moments - - Hu moments calculator object - -KEYWORDS - pix - -DESCRIPTION - ------------------------------------------------------------------*/ -class GEM_EXTERN pix_opencv_hu_moments : public GemPixObj -{ - CPPEXTERN_HEADER(pix_opencv_hu_moments, GemPixObj) - - public: - - ////////// - // Constructor - pix_opencv_hu_moments(); - - protected: - - ////////// - // Destructor - virtual ~pix_opencv_hu_moments(); - - ////////// - // Do the processing - virtual void processRGBAImage(imageStruct &image); - virtual void processRGBImage(imageStruct &image); - virtual void processYUVImage(imageStruct &image); - virtual void processGrayImage(imageStruct &image); - - ////////// - // Set the new edge threshold - void floatBinaryMess(float binary); - - // to detect changes in the image size - int comp_xsize; - int comp_ysize; - - int x_binary; - t_outlet *m_dataout; - t_atom rlist[7]; - - private: - - ////////// - // Static member functions - static void floatBinaryMessCallback(void *data, t_floatarg binary); - - ///////// - // IplImage needed - IplImage *rgba, *rgb, *gray; - CvMoments x_moments; - CvHuMoments x_humoments; -}; - -#endif // for header file |