aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorN.N. <sevyves@users.sourceforge.net>2010-08-03 17:10:32 +0000
committerN.N. <sevyves@users.sourceforge.net>2010-08-03 17:10:32 +0000
commit15ec89b8acb5e2fb3f41b45cc37fd3c585bdb38b (patch)
tree1601a4e3e6e4cc36d761a3ea6502c1876bbc3ee6
parent5dc1d97357e3519da6c595c21682aa00a58624ff (diff)
a few fixes for opencv 2.0
svn path=/trunk/externals/pix_opencv/; revision=13743
-rw-r--r--pix_opencv_contours_convexity-help.pd187
-rw-r--r--pix_opencv_distrans.cc41
-rw-r--r--pix_opencv_distrans.h2
-rw-r--r--pix_opencv_floodfill-help.pd86
-rw-r--r--pix_opencv_laplace.cc108
-rw-r--r--pix_opencv_laplace.h2
-rw-r--r--pix_opencv_morphology.cc83
-rw-r--r--pix_opencv_morphology.h2
-rw-r--r--pix_opencv_motempl.cc80
-rw-r--r--pix_opencv_motempl.h2
-rwxr-xr-xpix_opencv_of_bm-help.pd22
-rwxr-xr-xpix_opencv_of_hs-help.pd44
-rwxr-xr-xpix_opencv_of_lk-help.pd38
13 files changed, 293 insertions, 404 deletions
diff --git a/pix_opencv_contours_convexity-help.pd b/pix_opencv_contours_convexity-help.pd
index 46c20bf..8af1aef 100644
--- a/pix_opencv_contours_convexity-help.pd
+++ b/pix_opencv_contours_convexity-help.pd
@@ -1,15 +1,8 @@
-#N canvas 210 25 1257 664 10;
+#N canvas 179 49 1257 664 10;
#X obj 598 605 cnv 15 255 67 empty empty empty 20 12 0 14 -24198 -66577
0;
#X obj 616 648 pix_opencv_contours_convexity;
-#X floatatom 782 842 5 0 0 0 - - -;
-#X floatatom 981 998 5 0 0 0 - - -;
-#X floatatom 884 841 5 0 0 0 - - -;
-#X floatatom 1066 1002 5 0 0 0 - - -;
-#X floatatom 939 843 5 0 0 0 - - -;
-#X floatatom 1126 1003 5 0 0 0 - - -;
-#X floatatom 1030 844 5 0 0 0 - - -;
-#X floatatom 1203 1004 5 0 0 0 - - -;
+#X floatatom 804 807 5 0 0 0 - - -;
#X floatatom 1767 815 5 0 0 0 - - -;
#X floatatom 1801 815 5 0 0 0 - - -;
#X text 1775 834 Depth point (X -Y);
@@ -61,7 +54,7 @@ be analyzed..;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
#X restore 63 104 pd gemwin;
-#X msg 63 86 destroy;
+#X msg 63 86 create;
#X obj 464 858 pix_texture;
#X obj 464 886 square 2;
#X obj 616 391 separator;
@@ -114,7 +107,7 @@ be analyzed..;
#X connect 11 1 9 0;
#X connect 11 1 6 0;
#X restore 557 319 pd vswitch;
-#X obj 625 319 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 1
+#X obj 625 319 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 498 247 pix_video;
#X obj 498 59 gemhead;
@@ -127,129 +120,55 @@ be analyzed..;
#X floatatom 763 492 5 0 0 0 - - -;
#X obj 616 534 pix_opencv_morphology;
#X floatatom 764 533 5 0 0 0 - - -;
-#X obj 620 513 pix_separator;
-#X obj 616 881 square 4;
-#X floatatom 579 958 5 0 0 0 - - -;
-#X floatatom 613 958 5 0 0 0 - - -;
-#X obj 443 975 gemhead;
-#X obj 446 1026 translateXYZ;
-#X obj 447 1066 square 0.2;
-#X obj 582 1011 - 160;
-#X obj 583 1042 / 40;
-#X obj 629 1012 - 120;
-#X obj 629 1043 / 30;
-#X obj 442 999 colorRGB 0 1 0;
#X obj 815 778 unpack 0 0;
-#X obj 888 779 unpack 0 0;
-#X obj 973 779 unpack 0 0;
-#X obj 1064 780 unpack 0 0;
-#X floatatom 1111 847 5 0 0 0 - - -;
-#X floatatom 1310 1003 5 0 0 0 - - -;
-#X floatatom 1213 846 5 0 0 0 - - -;
-#X floatatom 1395 1007 5 0 0 0 - - -;
-#X floatatom 1268 848 5 0 0 0 - - -;
-#X floatatom 1455 1008 5 0 0 0 - - -;
-#X floatatom 1359 849 5 0 0 0 - - -;
-#X floatatom 1532 1009 5 0 0 0 - - -;
-#X obj 1144 783 unpack 0 0;
-#X obj 1217 784 unpack 0 0;
-#X obj 1302 784 unpack 0 0;
-#X obj 1393 785 unpack 0 0;
#X obj 809 695 route 0 1 2 3 4 5 6 7;
-#X obj 807 882 max;
-#X obj 851 882 max;
-#X obj 888 883 max;
-#X obj 932 883 max;
-#X obj 987 884 max;
-#X obj 1031 884 max;
-#X floatatom 753 989 5 0 0 0 - - -;
-#X connect 1 0 20 0;
-#X connect 1 1 14 0;
-#X connect 1 2 85 0;
-#X connect 2 0 86 0;
-#X connect 3 0 60 0;
-#X connect 4 0 86 1;
-#X connect 6 0 87 1;
-#X connect 8 0 88 1;
-#X connect 19 0 32 0;
-#X connect 20 0 58 0;
-#X connect 22 0 23 0;
-#X connect 23 0 22 0;
+#X obj 616 881 square 2;
+#X text 891 779 for each point;
+#X text 808 823 X;
+#X floatatom 868 809 5 0 0 0 - - -;
+#X text 868 827 Y;
+#X connect 1 0 13 0;
+#X connect 1 1 7 0;
+#X connect 1 2 51 0;
+#X connect 12 0 25 0;
+#X connect 13 0 52 0;
+#X connect 15 0 16 0;
+#X connect 16 0 15 0;
+#X connect 17 0 18 0;
+#X connect 19 0 46 0;
+#X connect 20 0 23 0;
+#X connect 21 0 22 0;
+#X connect 22 0 25 1;
+#X connect 23 0 24 0;
#X connect 24 0 25 0;
-#X connect 26 0 53 0;
-#X connect 27 0 30 0;
-#X connect 28 0 29 0;
-#X connect 29 0 32 1;
-#X connect 30 0 31 0;
-#X connect 31 0 32 0;
-#X connect 32 0 44 1;
-#X connect 32 2 28 0;
-#X connect 33 0 32 0;
-#X connect 34 0 33 0;
-#X connect 36 0 32 0;
-#X connect 36 0 46 0;
-#X connect 37 0 32 0;
-#X connect 38 0 32 0;
-#X connect 39 0 36 0;
-#X connect 39 0 34 0;
-#X connect 40 0 26 0;
-#X connect 41 0 43 0;
-#X connect 42 0 41 0;
-#X connect 43 0 24 0;
-#X connect 44 0 40 0;
-#X connect 45 0 44 2;
-#X connect 46 0 44 0;
-#X connect 47 0 46 0;
-#X connect 48 0 46 0;
-#X connect 49 0 46 0;
-#X connect 50 0 46 0;
-#X connect 51 0 46 0;
-#X connect 52 0 57 0;
-#X connect 53 0 52 0;
-#X connect 54 0 52 1;
-#X connect 55 0 1 0;
-#X connect 56 0 55 1;
-#X connect 57 0 55 0;
-#X connect 59 0 64 0;
-#X connect 60 0 66 0;
-#X connect 61 0 68 0;
-#X connect 62 0 63 0;
-#X connect 64 0 65 0;
-#X connect 65 0 62 1;
-#X connect 66 0 67 0;
-#X connect 67 0 62 2;
-#X connect 68 0 62 0;
-#X connect 69 0 2 0;
-#X connect 69 1 3 0;
-#X connect 70 0 4 0;
-#X connect 70 1 5 0;
-#X connect 71 0 6 0;
-#X connect 71 1 7 0;
-#X connect 72 0 8 0;
-#X connect 72 1 9 0;
-#X connect 73 0 89 1;
-#X connect 75 0 90 1;
-#X connect 77 0 91 1;
-#X connect 81 0 73 0;
-#X connect 81 1 74 0;
-#X connect 82 0 75 0;
-#X connect 82 1 76 0;
-#X connect 83 0 77 0;
-#X connect 83 1 78 0;
-#X connect 84 0 79 0;
-#X connect 84 1 80 0;
-#X connect 85 0 69 0;
-#X connect 85 1 70 0;
-#X connect 85 2 71 0;
-#X connect 85 3 72 0;
-#X connect 85 4 81 0;
-#X connect 85 5 82 0;
-#X connect 85 6 83 0;
-#X connect 85 7 84 0;
-#X connect 86 0 87 0;
-#X connect 87 0 88 0;
-#X connect 88 0 89 0;
-#X connect 89 0 90 0;
-#X connect 90 0 91 0;
-#X connect 91 0 92 0;
-#X connect 92 0 59 0;
+#X connect 25 0 37 1;
+#X connect 25 2 21 0;
+#X connect 26 0 25 0;
+#X connect 27 0 26 0;
+#X connect 29 0 25 0;
+#X connect 29 0 39 0;
+#X connect 30 0 25 0;
+#X connect 31 0 25 0;
+#X connect 32 0 29 0;
+#X connect 32 0 27 0;
+#X connect 33 0 19 0;
+#X connect 34 0 36 0;
+#X connect 35 0 34 0;
+#X connect 36 0 17 0;
+#X connect 37 0 33 0;
+#X connect 37 0 35 0;
+#X connect 38 0 37 2;
+#X connect 39 0 37 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 0;
+#X connect 42 0 39 0;
+#X connect 43 0 39 0;
+#X connect 44 0 39 0;
+#X connect 45 0 48 0;
+#X connect 46 0 45 0;
+#X connect 47 0 45 1;
+#X connect 48 0 1 0;
+#X connect 49 0 48 1;
+#X connect 50 0 2 0;
+#X connect 50 1 55 0;
+#X connect 51 0 50 0;
diff --git a/pix_opencv_distrans.cc b/pix_opencv_distrans.cc
index 58e63fd..a87485d 100644
--- a/pix_opencv_distrans.cc
+++ b/pix_opencv_distrans.cc
@@ -43,7 +43,7 @@ pix_opencv_distrans :: pix_opencv_distrans()
dist8u2 = NULL;
dist8u = NULL;
dist32s = NULL;
- src = NULL;
+ rgb = NULL;
gray = NULL;
edge = NULL;
labels = NULL;
@@ -61,7 +61,7 @@ pix_opencv_distrans :: pix_opencv_distrans()
pix_opencv_distrans :: ~pix_opencv_distrans()
{
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &gray );
cvReleaseImage( &edge );
cvReleaseImage( &dist );
@@ -102,7 +102,7 @@ void pix_opencv_distrans :: processRGBAImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &gray );
cvReleaseImage( &edge );
cvReleaseImage( &dist );
@@ -115,8 +115,8 @@ void pix_opencv_distrans :: processRGBAImage(imageStruct &image)
cvReleaseImage( &alpha );
//Create cv_images
- src = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
- gray = cvCreateImage(cvSize(src->width,src->height), IPL_DEPTH_8U, 1);
+ rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
+ gray = cvCreateImage(cvSize(rgb->width,rgb->height), IPL_DEPTH_8U, 1);
dist = cvCreateImage( cvGetSize(gray), IPL_DEPTH_32F, 1 );
dist8u1 = cvCloneImage( gray );
dist8u2 = cvCloneImage( gray );
@@ -127,16 +127,10 @@ void pix_opencv_distrans :: processRGBAImage(imageStruct &image)
rgba = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
- // FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
memcpy( rgba->imageData, image.data, image.xsize*image.ysize*4 );
- CvArr* in[] = { rgba };
- CvArr* out[] = { src, alpha };
- int from_to[] = { 0, 0, 1, 1, 2, 2, 3, 3 };
- //cvSet( rgba, cvScalar(1,2,3,4) );
- cvMixChannels( (const CvArr**)in, 1, out, 2, from_to, 4 );
-
- cvCvtColor(src, gray, CV_BGR2GRAY);
+ cvCvtColor(rgba, rgb, CV_RGBA2RGB);
+ cvCvtColor(rgb, gray, CV_RGB2GRAY);
cvThreshold( gray, edge, (float)edge_thresh, (float)edge_thresh, CV_THRESH_BINARY );
@@ -182,10 +176,7 @@ void pix_opencv_distrans :: processRGBAImage(imageStruct &image)
}
- CvArr* src[] = { dist8u, alpha };
- CvArr* dst[] = { rgba };
- cvMixChannels( (const CvArr**)src, 2, (CvArr**)dst, 1, from_to, 4 );
- //cvShowImage(wndname, cedge);
+ cvCvtColor(dist8u, rgba, CV_RGB2RGBA);
memcpy( image.data, rgba->imageData, image.xsize*image.ysize*4 );
}
@@ -213,7 +204,7 @@ void pix_opencv_distrans :: processRGBImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &gray );
cvReleaseImage( &edge );
cvReleaseImage( &dist );
@@ -226,8 +217,8 @@ void pix_opencv_distrans :: processRGBImage(imageStruct &image)
cvReleaseImage( &alpha );
//Create cv_images
- src = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
- gray = cvCreateImage(cvSize(src->width,src->height), IPL_DEPTH_8U, 1);
+ rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
+ gray = cvCreateImage(cvSize(rgb->width,rgb->height), IPL_DEPTH_8U, 1);
dist = cvCreateImage( cvGetSize(gray), IPL_DEPTH_32F, 1 );
dist8u1 = cvCloneImage( gray );
dist8u2 = cvCloneImage( gray );
@@ -239,9 +230,9 @@ void pix_opencv_distrans :: processRGBImage(imageStruct &image)
alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( src->imageData, image.data, image.xsize*image.ysize*3 );
+ memcpy( rgb->imageData, image.data, image.xsize*image.ysize*3 );
- cvCvtColor(src, gray, CV_BGR2GRAY);
+ cvCvtColor(rgb, gray, CV_BGR2GRAY);
cvThreshold( gray, edge, (float)edge_thresh, (float)edge_thresh, CV_THRESH_BINARY );
@@ -319,7 +310,7 @@ void pix_opencv_distrans :: processGrayImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &gray );
cvReleaseImage( &edge );
cvReleaseImage( &dist );
@@ -332,8 +323,8 @@ void pix_opencv_distrans :: processGrayImage(imageStruct &image)
cvReleaseImage( &alpha );
//Create cv_images
- src = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
- gray = cvCreateImage(cvSize(src->width,src->height), IPL_DEPTH_8U, 1);
+ rgb = cvCreateImage(cvSize(image.xsize,image.ysize), IPL_DEPTH_8U, 3);
+ gray = cvCreateImage(cvSize(rgb->width,rgb->height), IPL_DEPTH_8U, 1);
dist = cvCreateImage( cvGetSize(gray), IPL_DEPTH_32F, 1 );
dist8u1 = cvCloneImage( gray );
dist8u2 = cvCloneImage( gray );
diff --git a/pix_opencv_distrans.h b/pix_opencv_distrans.h
index bfa1506..9e16c86 100644
--- a/pix_opencv_distrans.h
+++ b/pix_opencv_distrans.h
@@ -78,7 +78,7 @@ class GEM_EXTERN pix_opencv_distrans : public GemPixObj
// The output and temporary images
IplImage *dist, *dist8u1, *dist8u2, *dist8u, *dist32s;
- IplImage *src, *gray, *edge, *labels;
+ IplImage *rgb, *gray, *edge, *labels;
IplImage *rgba, *alpha;
};
diff --git a/pix_opencv_floodfill-help.pd b/pix_opencv_floodfill-help.pd
index 7da304f..5adaa14 100644
--- a/pix_opencv_floodfill-help.pd
+++ b/pix_opencv_floodfill-help.pd
@@ -1,4 +1,4 @@
-#N canvas 409 124 1171 685 10;
+#N canvas 265 148 1171 685 10;
#X obj -96 -15 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 22 454 304 gemwin 0;
@@ -40,7 +40,7 @@
#X connect 10 2 11 0;
#X connect 11 0 6 0;
#X restore -89 31 pd gemwin;
-#X msg -88 9 create;
+#X msg -88 9 destroy;
#X text -88 -12 Create window and render;
#X obj 288 360 cnv 15 600 350 empty empty empty 20 12 0 14 -24198 -66577
0;
@@ -67,9 +67,6 @@ specific color;
#X text 485 534 activate color mode ( default : on );
#X msg 381 461 fillcolor 1 255 0 123;
#X text 519 462 fillcolor of nth component ( 1 < n < 10 );
-#X text 425 372 mark %x %y : mark a component;
-#X text 425 384 ( 0 <= %x <= 1 );
-#X text 426 395 ( 0 <= %y <= 1 );
#X msg 365 414 delete 1;
#X msg 379 436 clear;
#X text 425 414 delete a component ( 1 <= index <= 10 );
@@ -101,13 +98,13 @@ specific color;
#X msg 505 65 open \$1;
#X obj 493 174 pix_film;
#X msg 511 108 auto \$1;
-#X obj 511 90 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X obj 511 90 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X msg 606 91 colorspace RGBA;
#X msg 711 91 colorspace RGB;
#X msg 815 91 colorspace Grey;
#X obj 606 63 loadbang;
-#N canvas 0 0 450 300 vswitch 0;
+#N canvas 4 49 450 300 vswitch 0;
#X obj 144 263 outlet;
#X obj 36 26 inlet;
#X obj 260 29 inlet;
@@ -145,9 +142,15 @@ specific color;
#X msg 281 43 dialog;
#X msg 286 73 device /dev/dv1394-0;
#X obj 315 764 rectangle 5.3 4;
+#X floatatom 743 233 5 0 0 0 - - -;
+#X floatatom 791 232 5 0 0 0 - - -;
+#X text 424 386 mark x y : mark a component;
+#X obj 315 318 pix_resize 320 240;
#X connect 1 0 2 0;
#X connect 2 0 1 0;
+#X connect 5 0 68 0;
#X connect 5 0 7 1;
+#X connect 5 1 69 0;
#X connect 5 1 6 1;
#X connect 5 2 10 0;
#X connect 6 0 9 1;
@@ -157,45 +160,46 @@ specific color;
#X connect 9 0 19 0;
#X connect 10 0 11 0;
#X connect 11 0 8 0;
-#X connect 12 0 49 0;
-#X connect 12 1 35 0;
+#X connect 12 0 46 0;
+#X connect 12 1 32 0;
#X connect 17 0 12 1;
#X connect 18 0 12 2;
#X connect 19 0 12 0;
#X connect 20 0 12 0;
#X connect 21 0 20 0;
#X connect 23 0 12 0;
-#X connect 28 0 12 0;
-#X connect 29 0 12 0;
-#X connect 35 0 40 0;
-#X connect 40 0 36 0;
-#X connect 40 1 37 0;
-#X connect 40 2 38 0;
-#X connect 40 3 39 0;
-#X connect 46 0 12 0;
-#X connect 47 0 12 0;
-#X connect 48 0 55 0;
-#X connect 49 0 70 0;
-#X connect 50 0 53 0;
+#X connect 25 0 12 0;
+#X connect 26 0 12 0;
+#X connect 32 0 37 0;
+#X connect 37 0 33 0;
+#X connect 37 1 34 0;
+#X connect 37 2 35 0;
+#X connect 37 3 36 0;
+#X connect 43 0 12 0;
+#X connect 44 0 12 0;
+#X connect 45 0 52 0;
+#X connect 46 0 67 0;
+#X connect 47 0 50 0;
+#X connect 48 0 49 0;
+#X connect 49 0 52 1;
+#X connect 50 0 51 0;
#X connect 51 0 52 0;
-#X connect 52 0 55 1;
-#X connect 53 0 54 0;
-#X connect 54 0 55 0;
-#X connect 55 0 62 1;
-#X connect 55 2 51 0;
-#X connect 56 0 55 0;
-#X connect 57 0 56 0;
+#X connect 52 0 59 1;
+#X connect 52 2 48 0;
+#X connect 53 0 52 0;
+#X connect 54 0 53 0;
+#X connect 55 0 52 0;
+#X connect 55 0 61 0;
+#X connect 56 0 52 0;
+#X connect 57 0 52 0;
#X connect 58 0 55 0;
-#X connect 58 0 64 0;
-#X connect 59 0 55 0;
-#X connect 60 0 55 0;
-#X connect 61 0 58 0;
-#X connect 61 0 57 0;
-#X connect 62 0 12 0;
-#X connect 63 0 62 2;
-#X connect 64 0 62 0;
-#X connect 65 0 64 0;
-#X connect 66 0 64 0;
-#X connect 67 0 64 0;
-#X connect 68 0 64 0;
-#X connect 69 0 64 0;
+#X connect 58 0 54 0;
+#X connect 59 0 71 0;
+#X connect 60 0 59 2;
+#X connect 61 0 59 0;
+#X connect 62 0 61 0;
+#X connect 63 0 61 0;
+#X connect 64 0 61 0;
+#X connect 65 0 61 0;
+#X connect 66 0 61 0;
+#X connect 71 0 12 0;
diff --git a/pix_opencv_laplace.cc b/pix_opencv_laplace.cc
index 8c8f3d3..163cd63 100644
--- a/pix_opencv_laplace.cc
+++ b/pix_opencv_laplace.cc
@@ -37,9 +37,9 @@ pix_opencv_laplace :: pix_opencv_laplace()
comp_xsize = 0;
comp_ysize = 0;
- frame = NULL;
+ rgb = NULL;
rgba = NULL;
- alpha = NULL;
+ grey = NULL;
laplace = NULL;
colorlaplace = NULL;
for (i=0; i<3; i++) planes[i] = NULL;
@@ -56,9 +56,9 @@ pix_opencv_laplace :: ~pix_opencv_laplace()
//Destroy cv_images to clean memory
for( i = 0; i < 3; i++ )
cvReleaseImage( &planes[i] );
- cvReleaseImage( &frame );
+ cvReleaseImage( &rgb );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
cvReleaseImage( &laplace );
cvReleaseImage( &colorlaplace );
}
@@ -80,9 +80,9 @@ void pix_opencv_laplace :: processRGBAImage(imageStruct &image)
//Destroy cv_images to clean memory
for( i = 0; i < 3; i++ )
cvReleaseImage( &planes[i] );
- cvReleaseImage( &frame );
+ cvReleaseImage( &rgb );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
cvReleaseImage( &laplace );
cvReleaseImage( &colorlaplace );
@@ -91,33 +91,25 @@ void pix_opencv_laplace :: processRGBAImage(imageStruct &image)
planes[i] = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
laplace = cvCreateImage( cvSize(image.xsize, image.ysize), IPL_DEPTH_16S, 1 );
colorlaplace = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
- frame = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
+ rgb = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
rgba = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
memcpy( rgba->imageData, image.data, image.xsize*image.ysize*4 );
- CvArr* in[] = { rgba };
- CvArr* out[] = { frame, alpha };
- int from_to[] = { 0, 0, 1, 1, 2, 2, 3, 3 };
- //cvSet( rgba, cvScalar(1,2,3,4) );
- cvMixChannels( (const CvArr**)in, 1, out, 2, from_to, 4 );
-
- cvCvtPixToPlane( frame, planes[0], planes[1], planes[2], 0 );
- for( i = 0; i < 3; i++ )
- {
- cvLaplace( planes[i], laplace, aperture_size );
- cvConvertScaleAbs( laplace, planes[i], 1, 0 );
- }
- cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
- colorlaplace->origin = frame->origin;
-
-
- CvArr* src[] = { colorlaplace, alpha };
- CvArr* dst[] = { rgba };
- cvMixChannels( (const CvArr**)src, 2, (CvArr**)dst, 1, from_to, 4 );
- //cvShowImage(wndname, cedge);
+ cvCvtColor( rgba, rgb, CV_RGBA2RGB);
+
+ cvCvtPixToPlane( rgb, planes[0], planes[1], planes[2], 0 );
+ for( i = 0; i < 3; i++ )
+ {
+ cvLaplace( planes[i], laplace, aperture_size );
+ cvConvertScaleAbs( laplace, planes[i], 1, 0 );
+ }
+ cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
+ colorlaplace->origin = rgb->origin;
+
+ cvCvtColor( colorlaplace, rgba, CV_RGB2RGBA);
memcpy( image.data, rgba->imageData, image.xsize*image.ysize*4 );
}
@@ -126,7 +118,7 @@ void pix_opencv_laplace :: processRGBImage(imageStruct &image)
unsigned char *pixels = image.data;
int i;
- if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!frame)) {
+ if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!rgb)) {
this->comp_xsize = image.xsize;
this->comp_ysize = image.ysize;
@@ -134,7 +126,7 @@ void pix_opencv_laplace :: processRGBImage(imageStruct &image)
//Destroy cv_images to clean memory
for( i = 0; i < 3; i++ )
cvReleaseImage( &planes[i] );
- cvReleaseImage( &frame );
+ cvReleaseImage( &rgb );
cvReleaseImage( &laplace );
cvReleaseImage( &colorlaplace );
@@ -143,20 +135,19 @@ void pix_opencv_laplace :: processRGBImage(imageStruct &image)
planes[i] = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
laplace = cvCreateImage( cvSize(image.xsize, image.ysize), IPL_DEPTH_16S, 1 );
colorlaplace = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
- frame = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
+ rgb = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( frame->imageData, image.data, image.xsize*image.ysize*3 );
-
- cvCvtPixToPlane( frame, planes[0], planes[1], planes[2], 0 );
- for( i = 0; i < 3; i++ )
- {
- cvLaplace( planes[i], laplace, 3 );
- cvConvertScaleAbs( laplace, planes[i], 1, 0 );
- }
- cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
- colorlaplace->origin = frame->origin;
+ memcpy( rgb->imageData, image.data, image.xsize*image.ysize*3 );
+ cvCvtPixToPlane( rgb, planes[0], planes[1], planes[2], 0 );
+ for( i = 0; i < 3; i++ )
+ {
+ cvLaplace( planes[i], laplace, 3 );
+ cvConvertScaleAbs( laplace, planes[i], 1, 0 );
+ }
+ cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
+ colorlaplace->origin = rgb->origin;
//cvShowImage(wndname, cedge);
memcpy( image.data, colorlaplace->imageData, image.xsize*image.ysize*3 );
@@ -172,7 +163,7 @@ void pix_opencv_laplace :: processGrayImage(imageStruct &image)
unsigned char *pixels = image.data;
int i;
- if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!alpha)) {
+ if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!grey)) {
this->comp_xsize = image.xsize;
this->comp_ysize = image.ysize;
@@ -180,37 +171,36 @@ void pix_opencv_laplace :: processGrayImage(imageStruct &image)
//Destroy cv_images to clean memory
for( i = 0; i < 3; i++ )
cvReleaseImage( &planes[i] );
- cvReleaseImage( &frame );
+ cvReleaseImage( &rgb );
cvReleaseImage( &laplace );
cvReleaseImage( &colorlaplace );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
for( i = 0; i < 3; i++ )
planes[i] = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
laplace = cvCreateImage( cvSize(image.xsize, image.ysize), IPL_DEPTH_16S, 1 );
colorlaplace = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
- frame = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
- alpha = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 1 );
+ rgb = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 3 );
+ grey = cvCreateImage( cvSize(image.xsize,image.ysize), 8, 1 );
}
- // FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( alpha->imageData, image.data, image.xsize*image.ysize );
+ memcpy( grey->imageData, image.data, image.xsize*image.ysize );
- cvCvtColor( alpha, frame, CV_GRAY2RGB);
+ cvCvtColor( grey, rgb, CV_GRAY2RGB);
- cvCvtPixToPlane( frame, planes[0], planes[1], planes[2], 0 );
- for( i = 0; i < 3; i++ )
- {
- cvLaplace( planes[i], laplace, 3 );
- cvConvertScaleAbs( laplace, planes[i], 1, 0 );
- }
- cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
- colorlaplace->origin = frame->origin;
+ cvCvtPixToPlane( rgb, planes[0], planes[1], planes[2], 0 );
+ for( i = 0; i < 3; i++ )
+ {
+ cvLaplace( planes[i], laplace, 3 );
+ cvConvertScaleAbs( laplace, planes[i], 1, 0 );
+ }
+ cvCvtPlaneToPix( planes[0], planes[1], planes[2], 0, colorlaplace );
+ colorlaplace->origin = rgb->origin;
- cvCvtColor( colorlaplace, alpha, CV_RGB2GRAY);
+ cvCvtColor( colorlaplace, grey, CV_RGB2GRAY);
//cvShowImage(wndname, cedge);
- memcpy( image.data, alpha->imageData, image.xsize*image.ysize );
+ memcpy( image.data, grey->imageData, image.xsize*image.ysize );
}
/////////////////////////////////////////////////////////
diff --git a/pix_opencv_laplace.h b/pix_opencv_laplace.h
index 8eeb25d..c1aff98 100644
--- a/pix_opencv_laplace.h
+++ b/pix_opencv_laplace.h
@@ -75,7 +75,7 @@ class GEM_EXTERN pix_opencv_laplace : public GemPixObj
/////////
// IplImage needed
- IplImage *frame, *rgba, *alpha, *laplace, *colorlaplace, *planes[3];
+ IplImage *rgb, *rgba, *grey, *laplace, *colorlaplace, *planes[3];
};
diff --git a/pix_opencv_morphology.cc b/pix_opencv_morphology.cc
index 27c4a26..a241ac5 100644
--- a/pix_opencv_morphology.cc
+++ b/pix_opencv_morphology.cc
@@ -38,8 +38,8 @@ pix_opencv_morphology :: pix_opencv_morphology()
comp_ysize = 0;
rgba = NULL;
- alpha = NULL;
- src = NULL;
+ grey = NULL;
+ rgb = NULL;
dst = NULL;
element_shape = CV_SHAPE_RECT;
@@ -53,10 +53,10 @@ pix_opencv_morphology :: pix_opencv_morphology()
pix_opencv_morphology :: ~pix_opencv_morphology()
{
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &dst );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
}
/////////////////////////////////////////////////////////
@@ -74,25 +74,21 @@ void pix_opencv_morphology :: processRGBAImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &dst );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
- src = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 3 );
- dst = cvCloneImage(src);
+ rgb = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 3 );
+ dst = cvCloneImage(rgb);
rgba = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
memcpy( rgba->imageData, image.data, image.xsize*image.ysize*4 );
- CvArr* in[] = { rgba };
- CvArr* out[] = { src, alpha };
- int from_to[] = { 0, 0, 1, 1, 2, 2, 3, 3 };
- //cvSet( rgba, cvScalar(1,2,3,4) );
- cvMixChannels( (const CvArr**)in, 1, out, 2, from_to, 4 );
+ cvCvtColor(rgba, rgb, CV_RGBA2RGB);
if (this->mode == 1) { //open/close
int n = pos;
@@ -100,12 +96,12 @@ void pix_opencv_morphology :: processRGBAImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
cvDilate(dst,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
cvErode(dst,dst,element,1);
}
cvReleaseStructuringElement(&element);
@@ -116,20 +112,17 @@ void pix_opencv_morphology :: processRGBAImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
}
cvReleaseStructuringElement(&element);
}
- CvArr* src[] = { dst, alpha };
- CvArr* dst[] = { rgba };
- cvMixChannels( (const CvArr**)src, 2, (CvArr**)dst, 1, from_to, 4 );
- //cvShowImage(wndname, cedge);
+ cvCvtColor(dst, rgba, CV_RGB2RGBA);
memcpy( image.data, rgba->imageData, image.xsize*image.ysize*4 );
}
@@ -138,21 +131,21 @@ void pix_opencv_morphology :: processRGBImage(imageStruct &image)
unsigned char *pixels = image.data;
int i;
- if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!src)) {
+ 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
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &dst );
//Create cv_images
- src = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
- dst = cvCloneImage(src);
+ rgb = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
+ dst = cvCloneImage(rgb);
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( src->imageData, image.data, image.xsize*image.ysize*3 );
+ memcpy( rgb->imageData, image.data, image.xsize*image.ysize*3 );
if (this->mode == 1) { //open/close
int n = pos;
@@ -160,12 +153,12 @@ void pix_opencv_morphology :: processRGBImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
cvDilate(dst,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
cvErode(dst,dst,element,1);
}
cvReleaseStructuringElement(&element);
@@ -176,11 +169,11 @@ void pix_opencv_morphology :: processRGBImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
}
cvReleaseStructuringElement(&element);
@@ -200,25 +193,25 @@ void pix_opencv_morphology :: processGrayImage(imageStruct &image)
unsigned char *pixels = image.data;
int i;
- if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!alpha)) {
+ if ((this->comp_xsize!=image.xsize)||(this->comp_ysize!=image.ysize)||(!grey)) {
this->comp_xsize = image.xsize;
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &src );
+ cvReleaseImage( &rgb );
cvReleaseImage( &dst );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
- src = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 3 );
- dst = cvCloneImage(src);
- alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
+ rgb = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 3 );
+ dst = cvCloneImage(rgb);
+ grey = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( alpha->imageData, image.data, image.xsize*image.ysize );
+ memcpy( grey->imageData, image.data, image.xsize*image.ysize );
- cvCvtColor(alpha, src, CV_GRAY2RGB);
+ cvCvtColor(grey, rgb, CV_GRAY2RGB);
if (this->mode == 1) { //open/close
int n = pos;
@@ -226,12 +219,12 @@ void pix_opencv_morphology :: processGrayImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
cvDilate(dst,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
cvErode(dst,dst,element,1);
}
cvReleaseStructuringElement(&element);
@@ -242,19 +235,19 @@ void pix_opencv_morphology :: processGrayImage(imageStruct &image)
element = cvCreateStructuringElementEx( an*2+1, an*2+1, an, an, element_shape, 0 );
if( n < 0 )
{
- cvErode(src,dst,element,1);
+ cvErode(rgb,dst,element,1);
}
else
{
- cvDilate(src,dst,element,1);
+ cvDilate(rgb,dst,element,1);
}
cvReleaseStructuringElement(&element);
}
- cvCvtColor(dst, alpha, CV_RGB2GRAY);
+ cvCvtColor(dst, grey, CV_RGB2GRAY);
//cvShowImage(wndname, cedge);
- memcpy( image.data, alpha->imageData, image.xsize*image.ysize );
+ memcpy( image.data, grey->imageData, image.xsize*image.ysize );
}
/////////////////////////////////////////////////////////
diff --git a/pix_opencv_morphology.h b/pix_opencv_morphology.h
index 238549e..90c0780 100644
--- a/pix_opencv_morphology.h
+++ b/pix_opencv_morphology.h
@@ -78,7 +78,7 @@ class GEM_EXTERN pix_opencv_morphology : public GemPixObj
static void shapeMessCallback(void *data, t_floatarg f);
// The output and temporary images
- IplImage *rgba, *alpha, *src, *dst;
+ IplImage *rgba, *grey, *rgb, *dst;
IplConvKernel *element;
diff --git a/pix_opencv_motempl.cc b/pix_opencv_motempl.cc
index 208702a..8cd823c 100644
--- a/pix_opencv_motempl.cc
+++ b/pix_opencv_motempl.cc
@@ -53,10 +53,10 @@ pix_opencv_motempl :: pix_opencv_motempl()
min_size=50;
max_size=500;
- img = NULL;
+ rgb = NULL;
motion = NULL;
rgba = NULL;
- alpha = NULL;
+ grey = NULL;
mhi = NULL;
orient = NULL;
mask = NULL;
@@ -67,12 +67,12 @@ pix_opencv_motempl :: pix_opencv_motempl()
cvInitFont( &font, CV_FONT_HERSHEY_PLAIN, 1.0, 1.0, 0, 1, 8 );
- img = cvCreateImage(cvSize(comp_xsize,comp_ysize), IPL_DEPTH_8U, 3);
+ rgb = cvCreateImage(cvSize(comp_xsize,comp_ysize), IPL_DEPTH_8U, 3);
motion = cvCreateImage( cvSize(comp_xsize,comp_ysize), 8, 3 );
cvZero( motion );
- motion->origin = img->origin;
+ motion->origin = rgb->origin;
rgba = cvCreateImage( cvSize(comp_xsize, comp_ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(comp_xsize, comp_ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(comp_xsize, comp_ysize), 8, 1 );
}
@@ -83,10 +83,10 @@ pix_opencv_motempl :: pix_opencv_motempl()
pix_opencv_motempl :: ~pix_opencv_motempl()
{
//Destroy cv_images to clean memory
- cvReleaseImage( &img );
+ cvReleaseImage( &rgb );
cvReleaseImage( &motion );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
}
/////////////////////////////////////////////////////////
@@ -114,27 +114,22 @@ void pix_opencv_motempl :: processRGBAImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &img );
+ cvReleaseImage( &rgb );
cvReleaseImage( &motion );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
- img = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
- motion = cvCreateImage( cvSize(img->width,img->height), 8, 3 );
+ rgb = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
+ motion = cvCreateImage( cvSize(rgb->width,rgb->height), 8, 3 );
cvZero( motion );
- motion->origin = img->origin;
+ motion->origin = rgb->origin;
rgba = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
- // FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
memcpy( rgba->imageData, image.data, image.xsize*image.ysize*4 );
- CvArr* in[] = { rgba };
- CvArr* out[] = { img, alpha };
- int from_to[] = { 0, 0, 1, 1, 2, 2, 3, 3 };
- //cvSet( rgba, cvScalar(1,2,3,4) );
- cvMixChannels( (const CvArr**)in, 1, out, 2, from_to, 4 );
+ cvCvtColor( rgba, rgb, CV_RGBA2RGB);
// allocate images at the beginning or
// reallocate them if the frame size is changed
@@ -161,7 +156,7 @@ void pix_opencv_motempl :: processRGBAImage(imageStruct &image)
mask = cvCreateImage( size, IPL_DEPTH_8U, 1 );
}
- cvCvtColor( img, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
+ cvCvtColor( rgb, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
idx2 = (last + 1) % frame_buffer_num; // index of (last - (N-1))th frame
last = idx2;
@@ -263,11 +258,8 @@ void pix_opencv_motempl :: processRGBAImage(imageStruct &image)
}
}
-
- CvArr* src[] = { motion, alpha };
- CvArr* dst[] = { rgba };
- cvMixChannels( (const CvArr**)src, 2, (CvArr**)dst, 1, from_to, 4 );
- //cvShowImage(wndname, cedge);
+
+ cvCvtColor( motion, rgba, CV_RGB2RGBA);
memcpy( image.data, rgba->imageData, image.xsize*image.ysize*4 );
}
@@ -292,21 +284,21 @@ void pix_opencv_motempl :: processRGBImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &img );
+ cvReleaseImage( &rgb );
cvReleaseImage( &motion );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
- img = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
- motion = cvCreateImage( cvSize(img->width,img->height), 8, 3 );
+ rgb = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
+ motion = cvCreateImage( cvSize(rgb->width,rgb->height), 8, 3 );
cvZero( motion );
- motion->origin = img->origin;
+ motion->origin = rgb->origin;
rgba = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( img->imageData, image.data, image.xsize*image.ysize*3 );
+ memcpy( rgb->imageData, image.data, image.xsize*image.ysize*3 );
// allocate images at the beginning or
// reallocate them if the frame size is changed
@@ -333,7 +325,7 @@ void pix_opencv_motempl :: processRGBImage(imageStruct &image)
mask = cvCreateImage( size, IPL_DEPTH_8U, 1 );
}
- cvCvtColor( img, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
+ cvCvtColor( rgb, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
idx2 = (last + 1) % frame_buffer_num; // index of (last - (N-1))th frame
last = idx2;
@@ -466,24 +458,24 @@ void pix_opencv_motempl :: processGrayImage(imageStruct &image)
this->comp_ysize = image.ysize;
//Destroy cv_images to clean memory
- cvReleaseImage( &img );
+ cvReleaseImage( &rgb );
cvReleaseImage( &motion );
cvReleaseImage( &rgba );
- cvReleaseImage( &alpha );
+ cvReleaseImage( &grey );
//Create cv_images
- img = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
- motion = cvCreateImage( cvSize(img->width,img->height), 8, 3 );
+ rgb = cvCreateImage(cvSize(image.xsize, image.ysize), IPL_DEPTH_8U, 3);
+ motion = cvCreateImage( cvSize(rgb->width,rgb->height), 8, 3 );
cvZero( motion );
- motion->origin = img->origin;
+ motion->origin = rgb->origin;
rgba = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 4 );
- alpha = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
+ grey = cvCreateImage( cvSize(image.xsize, image.ysize), 8, 1 );
}
// FEM UNA COPIA DEL PACKET A image->imageData ... http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html aqui veiem la estructura de IplImage
- memcpy( alpha->imageData, image.data, image.xsize*image.ysize );
+ memcpy( grey->imageData, image.data, image.xsize*image.ysize );
// Convert to RGB
- cvCvtColor( alpha, img, CV_GRAY2RGB);
+ cvCvtColor( grey, rgb, CV_GRAY2RGB);
// allocate images at the beginning or
// reallocate them if the frame size is changed
@@ -510,7 +502,7 @@ void pix_opencv_motempl :: processGrayImage(imageStruct &image)
mask = cvCreateImage( size, IPL_DEPTH_8U, 1 );
}
- cvCvtColor( img, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
+ cvCvtColor( rgb, buf[last], CV_BGR2GRAY ); // convert frame to grayscale
idx2 = (last + 1) % frame_buffer_num; // index of (last - (N-1))th frame
last = idx2;
@@ -614,9 +606,9 @@ void pix_opencv_motempl :: processGrayImage(imageStruct &image)
// Convert to grayscale
- cvCvtColor( motion, alpha, CV_RGB2GRAY);
+ cvCvtColor( motion, grey, CV_RGB2GRAY);
//cvShowImage(wndname, cedge);
- memcpy( image.data, alpha->imageData, image.xsize*image.ysize );
+ memcpy( image.data, grey->imageData, image.xsize*image.ysize );
}
/////////////////////////////////////////////////////////
diff --git a/pix_opencv_motempl.h b/pix_opencv_motempl.h
index e83a3bf..7fc6aa7 100644
--- a/pix_opencv_motempl.h
+++ b/pix_opencv_motempl.h
@@ -109,7 +109,7 @@ class GEM_EXTERN pix_opencv_motempl : public GemPixObj
static void apertureMessCallback(void *data, t_floatarg aperture);
// The output and temporary images
- IplImage *img, *motion, *rgba, *alpha;
+ IplImage *rgb, *motion, *rgba, *grey;
// ring image buffer
IplImage **buf;
diff --git a/pix_opencv_of_bm-help.pd b/pix_opencv_of_bm-help.pd
index 20a368c..fd7a06c 100755
--- a/pix_opencv_of_bm-help.pd
+++ b/pix_opencv_of_bm-help.pd
@@ -1,4 +1,4 @@
-#N canvas 1 49 1424 780 10;
+#N canvas 4 61 1419 780 10;
#X obj 977 55 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 189 149 454 304 gemwin 0;
@@ -40,7 +40,7 @@
#X connect 10 0 0 0;
#X connect 11 0 0 0;
#X restore 984 101 pd gemwin;
-#X msg 984 80 create;
+#X msg 984 80 destroy;
#X text 987 62 Create window and render;
#X text 979 189 with a great help from Mateu Batle & Alberto de Rodrigo
from the iBit foundation.;
@@ -63,7 +63,7 @@ average direction and the intensity of the movement in a video stream.
#X text 549 642 marked with a white arrow on the stream;
#X text 549 618 average angle of the blocks movement;
#X text 548 630 ( in degrees [-180 \, 180]);
-#X obj 600 463 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 600 463 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 515 461 nightmode \$1;
#X floatatom 573 332 5 0 0 0 - - -;
@@ -138,7 +138,7 @@ when on );
#X connect 11 1 9 0;
#X connect 11 1 6 0;
#X restore 385 125 pd vswitch;
-#X obj 453 125 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 1
+#X obj 453 125 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 312 94 pix_video;
#X obj 315 -64 gemhead;
@@ -149,12 +149,12 @@ when on );
#X obj 294 659 pix_texture;
#X obj 294 687 square 2;
#X obj 455 664 pix_texture;
-#X obj 454 282 pix_resize 320 240;
#X text 504 146 this object can work on small frames unless you have
a very powerful machine;
#X obj 456 688 square 2;
#X obj 295 201 pix_separator;
#X obj 454 205 pix_separator;
+#X obj 384 154 pix_resize 320 240;
#X connect 1 0 2 0;
#X connect 2 0 1 0;
#X connect 9 0 69 0;
@@ -195,8 +195,7 @@ a very powerful machine;
#X connect 55 0 51 0;
#X connect 56 0 57 0;
#X connect 57 0 67 0;
-#X connect 58 0 70 0;
-#X connect 59 0 73 0;
+#X connect 58 0 9 0;
#X connect 59 0 74 0;
#X connect 60 0 59 2;
#X connect 61 0 59 0;
@@ -206,7 +205,8 @@ a very powerful machine;
#X connect 65 0 61 0;
#X connect 66 0 61 0;
#X connect 67 0 68 0;
-#X connect 69 0 72 0;
-#X connect 70 0 9 0;
-#X connect 73 0 56 0;
-#X connect 74 0 43 0;
+#X connect 69 0 71 0;
+#X connect 72 0 56 0;
+#X connect 73 0 43 0;
+#X connect 74 0 72 0;
+#X connect 74 0 73 0;
diff --git a/pix_opencv_of_hs-help.pd b/pix_opencv_of_hs-help.pd
index 6cb54e0..bd7255f 100755
--- a/pix_opencv_of_hs-help.pd
+++ b/pix_opencv_of_hs-help.pd
@@ -1,4 +1,4 @@
-#N canvas 1 49 1424 780 10;
+#N canvas 5 61 1424 780 10;
#X obj 977 55 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 189 149 454 304 gemwin 0;
@@ -114,7 +114,6 @@
#X obj 293 613 pix_texture;
#X obj 293 641 square 2;
#X obj 454 618 pix_texture;
-#X obj 454 278 pix_resize 320 240;
#X text 504 146 this object can work on small frames unless you have
a very powerful machine;
#X obj 455 642 square 2;
@@ -149,6 +148,7 @@ average direction and the intensity of the movement in a video stream.
#X text 981 202 comments to ydegoyon@gmail.com;
#X text 980 126 pix_opencv_of_hs : Haron and Schunck optical flow algorithm.
;
+#X obj 385 160 pix_resize 320 240;
#X connect 1 0 2 0;
#X connect 2 0 1 0;
#X connect 5 0 6 0;
@@ -172,9 +172,8 @@ average direction and the intensity of the movement in a video stream.
#X connect 28 0 24 0;
#X connect 29 0 30 0;
#X connect 30 0 40 0;
-#X connect 31 0 43 0;
-#X connect 32 0 46 0;
-#X connect 32 0 47 0;
+#X connect 31 0 47 0;
+#X connect 32 0 68 0;
#X connect 33 0 32 2;
#X connect 34 0 32 0;
#X connect 35 0 34 0;
@@ -183,20 +182,21 @@ average direction and the intensity of the movement in a video stream.
#X connect 38 0 34 0;
#X connect 39 0 34 0;
#X connect 40 0 41 0;
-#X connect 42 0 45 0;
-#X connect 43 0 48 0;
-#X connect 46 0 29 0;
-#X connect 47 0 16 0;
-#X connect 48 0 42 0;
-#X connect 48 1 11 0;
-#X connect 48 2 5 0;
-#X connect 49 0 50 0;
-#X connect 50 0 48 0;
-#X connect 51 0 61 0;
-#X connect 52 0 53 0;
-#X connect 53 0 48 0;
-#X connect 54 0 55 0;
-#X connect 55 0 48 0;
-#X connect 57 0 48 0;
-#X connect 58 0 57 0;
-#X connect 61 0 48 0;
+#X connect 42 0 44 0;
+#X connect 45 0 29 0;
+#X connect 46 0 16 0;
+#X connect 47 0 42 0;
+#X connect 47 1 11 0;
+#X connect 47 2 5 0;
+#X connect 48 0 49 0;
+#X connect 49 0 47 0;
+#X connect 50 0 60 0;
+#X connect 51 0 52 0;
+#X connect 52 0 47 0;
+#X connect 53 0 54 0;
+#X connect 54 0 47 0;
+#X connect 56 0 47 0;
+#X connect 57 0 56 0;
+#X connect 60 0 47 0;
+#X connect 68 0 46 0;
+#X connect 68 0 45 0;
diff --git a/pix_opencv_of_lk-help.pd b/pix_opencv_of_lk-help.pd
index 8d501d4..2a90e3c 100755
--- a/pix_opencv_of_lk-help.pd
+++ b/pix_opencv_of_lk-help.pd
@@ -114,7 +114,6 @@
#X obj 293 612 pix_texture;
#X obj 293 640 square 2;
#X obj 454 617 pix_texture;
-#X obj 454 282 pix_resize 320 240;
#X text 504 146 this object can work on small frames unless you have
a very powerful machine;
#X obj 455 641 square 2;
@@ -147,6 +146,7 @@ average direction and the intensity of the movement in a video stream.
\, 7 \, 9 \, 11 \, 13 \, 15);
#X text 627 363 threshold value for the detection of movement (default
100);
+#X obj 383 164 pix_resize 320 240;
#X connect 1 0 2 0;
#X connect 2 0 1 0;
#X connect 5 0 6 0;
@@ -172,9 +172,8 @@ average direction and the intensity of the movement in a video stream.
#X connect 28 0 24 0;
#X connect 29 0 30 0;
#X connect 30 0 40 0;
-#X connect 31 0 43 0;
-#X connect 32 0 46 0;
-#X connect 32 0 47 0;
+#X connect 31 0 62 0;
+#X connect 32 0 66 0;
#X connect 33 0 32 2;
#X connect 34 0 32 0;
#X connect 35 0 34 0;
@@ -183,18 +182,19 @@ average direction and the intensity of the movement in a video stream.
#X connect 38 0 34 0;
#X connect 39 0 34 0;
#X connect 40 0 41 0;
-#X connect 42 0 45 0;
-#X connect 43 0 63 0;
-#X connect 46 0 29 0;
-#X connect 47 0 16 0;
-#X connect 52 0 53 0;
-#X connect 53 0 63 0;
-#X connect 54 0 62 0;
-#X connect 55 0 56 0;
-#X connect 56 0 63 0;
-#X connect 57 0 63 0;
-#X connect 58 0 57 0;
-#X connect 62 0 63 0;
-#X connect 63 0 42 0;
-#X connect 63 1 11 0;
-#X connect 63 2 5 0;
+#X connect 42 0 44 0;
+#X connect 45 0 29 0;
+#X connect 46 0 16 0;
+#X connect 51 0 52 0;
+#X connect 52 0 62 0;
+#X connect 53 0 61 0;
+#X connect 54 0 55 0;
+#X connect 55 0 62 0;
+#X connect 56 0 62 0;
+#X connect 57 0 56 0;
+#X connect 61 0 62 0;
+#X connect 62 0 42 0;
+#X connect 62 1 11 0;
+#X connect 62 2 5 0;
+#X connect 66 0 45 0;
+#X connect 66 0 46 0;