#N canvas 478 34 785 700 10; #X obj 473 46 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577 0; #X obj 12 67 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 12 318 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 14 326 Inlets:; #X obj 12 278 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 0; #X text 21 277 Arguments:; #X text 13 497 Outlets:; #X text 479 31 Example:; #X text 59 32 Class: pix_opencv; #X text 67 287 none; #X obj 354 536 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 1 162 450 300 gemwin 0; #X obj 132 156 gemwin; #X obj 67 89 outlet; #X obj 67 10 inlet; #X obj 67 41 route create; #X msg 67 70 set destroy; #X msg 142 68 set create; #X msg 198 112 destroy; #X msg 132 132 reset \, dimen 640 480 \, offset 10 640 \, create \, 1; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 7 0; #X connect 3 1 5 0; #X connect 3 1 6 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X restore 359 575 pd gemwin; #X msg 359 556 destroy; #X text 355 535 Create window:; #X text 26 508 Outlet 1: gemlist output; #X text 17 730 bug \, feedback \, comment... on the pd-list; #X obj 477 114 cnv 15 280 160 empty empty empty 20 12 0 14 -4034 -66577 0; #X obj 488 58 gemhead 1; #X obj 488 291 pix_texture; #X msg 500 190 reset; #X obj 488 88 pix_video; #X text 31 340 Inlet 1: gemlist input; #X text 38 16 Synopsis: [pix_opencv_facetracker]; #X text 12 71 Description: finds face; #X text 39 87 [pix_opencv_facetracker] uses the FaceTracker library by Jason Saragih and Kyle Macdonald to track face features.; #X text 27 710 by antoine villeret - 2013; #X msg 548 190 show \$1; #X obj 548 171 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 31 355 Inlet 1: message reset : reset the tracker; #X text 31 370 Inlet 1: message show : draw tracking data on image ; #X msg 604 190 tolerance \$1; #X floatatom 604 173 5 0 0 0 - - -; #X floatatom 688 173 5 0 0 0 - - -; #X msg 688 190 clamp \$1; #X msg 576 142 filter \$1; #X floatatom 576 125 5 0 0 0 - - -; #X text 31 443 Inlet 1: message filter : Maximum number of optimization steps to perform. default 5; #X text 31 413 Inlet 1: message clamp : shape model parameters clamping factor (in standard dev's). default 3; #X text 31 385 Inlet 1: message tolerance : convergence tolerance of optimization. default 0.01; #N canvas 1373 557 410 415 draw_contour_gemvertexbuffer 0; #N canvas 1 100 548 451 mouse 0; #X obj 25 145 translateXYZ -0.5 -0.5 0; #X obj 25 122 scaleXYZ 10.6666 -8 1; #X obj 25 97 alpha 0; #X obj 25 71 gemhead 10000; #X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 221 203 route float; #X obj 221 225 sel 1; #X obj 221 182 route gem_state; #X msg 44 191 position MOUTH; #X obj 25 167 t a b b; #X obj 25 375 gemvertexbuffer 200; #X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range 0 12; #X connect 0 0 9 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 7 0; #X connect 4 0 3 0; #X connect 5 0 6 0; #X connect 6 0 11 0; #X connect 7 0 5 0; #X connect 8 0 10 0; #X connect 9 0 10 0; #X connect 9 1 8 0; #X connect 11 0 10 0; #X restore 38 28 pd mouse; #N canvas 1 95 631 351 jaw 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 156 170 position JAW; #X obj 128 304 gemvertexbuffer 200; #X obj 264 182 route float; #X obj 264 204 sel 1; #X obj 264 161 route gem_state; #X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, draw_range 0 17; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 10 0; #X connect 4 0 7 0; #X connect 4 1 6 0; #X connect 5 0 3 0; #X connect 6 0 7 0; #X connect 8 0 9 0; #X connect 9 0 11 0; #X connect 10 0 8 0; #X connect 11 0 7 0; #X restore 38 78 pd jaw; #N canvas 1 110 631 351 left_eye 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 280 182 route float; #X obj 280 204 sel 1; #X obj 280 161 route gem_state; #X msg 156 170 position LEFT_EYE; #X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range 0 6; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 98 pd left_eye; #N canvas 1 115 631 351 right_eye 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 280 182 route float; #X obj 280 204 sel 1; #X obj 280 161 route gem_state; #X msg 156 170 position RIGHT_EYE; #X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range 0 6; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 118 pd right_eye; #N canvas 352 670 631 351 right_eyebrow 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 318 176 route float; #X obj 318 198 sel 1; #X obj 318 155 route gem_state; #X msg 156 170 position RIGHT_EYEBROW; #X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, draw_range 0 5; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 138 pd right_eyebrow; #N canvas 596 689 631 351 right_eyebrow 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 318 176 route float; #X obj 318 198 sel 1; #X obj 318 155 route gem_state; #X msg 156 170 position LEFT_EYEBROW; #X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, draw_range 0 5; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 158 pd right_eyebrow; #N canvas 592 699 631 351 nose_base 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 318 176 route float; #X obj 318 198 sel 1; #X obj 318 155 route gem_state; #X msg 156 170 position NOSE_BASE; #X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, draw_range 0 5; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 178 pd nose_base; #N canvas 592 699 631 351 nose_bridge 0; #X obj 128 124 translateXYZ -0.5 -0.5 0; #X obj 128 101 scaleXYZ 10.6666 -8 1; #X obj 128 76 alpha 0; #X obj 128 40 gemhead 10000; #X obj 128 146 t a b b; #X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 128 304 gemvertexbuffer 200; #X obj 318 176 route float; #X obj 318 198 sel 1; #X obj 318 155 route gem_state; #X msg 156 170 position NOSE_BRIDGE; #X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, draw_range 0 4; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 9 0; #X connect 4 0 6 0; #X connect 4 1 10 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X restore 38 198 pd nose_bridge; #N canvas 980 217 548 451 inner_mouse 0; #X obj 25 145 translateXYZ -0.5 -0.5 0; #X obj 25 122 scaleXYZ 10.6666 -8 1; #X obj 25 97 alpha 0; #X obj 25 71 gemhead 10000; #X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 221 203 route float; #X obj 221 225 sel 1; #X obj 221 182 route gem_state; #X obj 25 167 t a b b; #X obj 25 375 gemvertexbuffer 200; #X msg 45 191 position INNER_MOUTH; #X floatatom 157 77 5 0 0 0 - - -; #X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range 0 8; #X connect 0 0 8 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 0 7 0; #X connect 4 0 3 0; #X connect 5 0 6 0; #X connect 6 0 12 0; #X connect 7 0 5 0; #X connect 8 0 9 0; #X connect 8 1 10 0; #X connect 10 0 9 0; #X connect 11 0 1 1; #X connect 12 0 9 0; #X restore 38 48 pd inner_mouse; #X restore 490 366 pd draw_contour_gemvertexbuffer; #X obj 488 313 rectangle 5.3333 4; #N canvas 1 205 450 300 settab 0; #X obj 60 76 loadbang; #X obj 60 224 outlet; #X msg 73 178 settab OUTER_MOUTH MOUTH; #X msg 60 96 settab LEFT_EYE LEFT_EYE \, settab RIGHT_EYE RIGHT_EYE \, settab OUTER_MOUTH MOUTH \, settab JAW JAW \, settab NOSE_BRIDGE NOSE_BRIDGE \, settab NOSE_BASE NOSE_BASE \, settab INNER_MOUTH INNER_MOUTH \, settab RIGHT_EYEBROW RIGHT_EYEBROW \, settab LEFT_EYEBROW LEFT_EYEBROW ; #X connect 0 0 3 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X restore 501 150 pd settab; #N canvas 118 701 450 349 fill_tables 0; #X obj 196 84 until; #X obj 196 106 f; #X obj 221 106 + 1; #X obj 196 20 loadbang; #X obj 196 148 t b f; #X obj 196 200 tabwrite colorR; #X obj 186 220 tabwrite colorA; #X msg 196 170 1; #X obj 196 40 t b b; #X msg 250 67 0; #X obj 177 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 196 63 200; #X obj -111 45 table LEFT_EYE 100; #X obj -111 65 table RIGHT_EYE 100; #X obj -111 85 table MOUTH 100; #X obj -111 145 table JAW 100; #X obj -111 165 table NOSE_BRIDGE 100; #X obj -111 105 table INNER_MOUTH 100; #X obj -111 185 table NOSE_BASE 100; #X obj -111 205 table FACE_OUTLINE 100; #X obj -111 264 table colorR 100; #X obj -110 285 table colorA 100; #X obj -111 5 table LEFT_EYEBROW 100; #X obj -111 25 table RIGHT_EYEBROW 100; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 0 4 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 4 0 7 0; #X connect 4 1 5 1; #X connect 4 1 6 1; #X connect 7 0 5 0; #X connect 7 0 6 0; #X connect 8 0 11 0; #X connect 8 1 9 0; #X connect 9 0 1 1; #X connect 10 0 8 0; #X connect 11 0 0 0; #X restore 490 386 pd fill_tables; #X obj 488 219 pix_opencv_facetracker; #X text 27 137 supported features : LEFT_EYEBROW \, RIGHT_EYEBROW \, LEFT_EYE \, RIGHT_EYE \, LEFT_JAW \, RIGHT_JAW \, JAW \, OUTER_MOUTH \, INNER_MOUTH \, NOSE_BRIDGE \, NOSE_BASE \, FACE_OUTLINE \, ALL_FEATURES ; #X obj 488 119 pix_rgba; #X connect 11 0 12 0; #X connect 12 0 11 0; #X connect 17 0 20 0; #X connect 18 0 40 0; #X connect 19 0 43 0; #X connect 20 0 45 0; #X connect 26 0 43 0; #X connect 27 0 26 0; #X connect 30 0 43 0; #X connect 31 0 30 0; #X connect 32 0 33 0; #X connect 33 0 43 0; #X connect 34 0 43 0; #X connect 35 0 34 0; #X connect 41 0 43 0; #X connect 43 0 18 0; #X connect 45 0 43 0;