#N canvas 0 0 640 480 10 ; #X obj 157 50 # +; #X text 200 50 plain numeric operators on grids: + - * / etc; #X obj -11 82 #apply_colormap_channelwise; #X text 200 82 apply color correction tables separately on each channel; #X obj 59 114 #background_model; #X text 200 114 make mask from learning to distinguish background from foreground; #X obj 129 146 #border; #X text 200 146 add padding on sides of a grid; #X obj 129 178 #camera; #X text 200 178 control panel for opening cameras; #X obj 129 210 #cast i; #X text 200 210 convert grid from one number type to another; #X obj 115 242 #centroid; #X text 200 242 find centroid (weighted average) of the coordinates of a grid; #X obj 129 274 #change; #X text 200 274 send grid only if different from previous grid; #X obj 115 306 #checkers; #X text 200 306 make image of chequered background in two tones of grey; #X obj 143 338 #clip; #X text 200 338 min and max; #X obj 24 370 #color; #X text 200 370 GUI for selecting a colour; #X obj 115 442 #contrast; #X text 200 442 adjust contrast in two different ways; #X obj 115 474 #convolve; #X text 200 474 compute convolution product of a grid (blur and edge-detection); #X obj 150 506 #dim; #X text 200 506 get the size (dimensions) of a grid; #X obj 87 538 #downscale_by; #X text 200 538 reduce the size of an image by a whole factor; #X obj 101 570 #draw_image; #X text 200 570 picture-in-picture; #X obj 94 602 #draw_points; #X text 200 602 (future use); #X obj 87 634 #draw_polygon; #X text 200 634 draw polygon in an image; #X obj 108 666 #draw_rect; #X text 200 666 draw a rectangle in an image; #X obj 94 698 #draw_slider; #X text 200 698 draw a slider in an image; #X obj 87 730 #edit_polygon; #X text 200 730 draw a polygon in an image and react to mouse events; #X obj 143 762 #fade; #X text 200 762 fade in exponential-decay fashion (linear recurrence); #X obj 115 794 #fade_lin; #X text 200 794 fade in piecewise-linear fashion; #X obj 115 826 #fastblur; #X text 200 826 speedy shortcut for rectangular blur; #X obj 150 858 #fft; #X text 200 858 compute forward or inverse one-or-two-dimensional complex FFT of a grid; #X obj 115 890 #finished; #X text 200 890 bang when grid transmission has ended; #X obj 129 922 #fold +; #X text 200 922 compute the sum of each row \, product of each row, and other similar operations; #X obj 108 954 #for 0 4 1; #X text 200 954 make a grid from all numbers or coordinates in a certain range; #X obj 115 986 #from_pix; #X text 200 986 convert pix (GEM) to grid; #X obj 136 1018 #gamma; #X text 200 1018 apply gamma correction; #X obj 136 1050 #grade; #X text 200 1050 make an index of the sorting of a grid; #X obj 59 1082 #greyscale_to_rgb; #X text 200 1082 convert greyscale to RGB; #X obj 136 1114 #hello; #X text 200 1114 make 7 colour bars; #X obj 115 1146 #hueshift; #X text 200 1146 apply hue shift by rotating the color wheel; #X obj 129 1178 #import; #X text 200 1178 convert float \, list, or symbol ASCII codes, to a grid; #X obj 101 1210 #import_pix; #X text 200 1210 old name of #from_pix; #X obj 157 1242 #in; #X text 200 1242 open file or device for reading or download; #X obj 136 1274 #inner; #X text 200 1274 scalar ("dot") product \, matrix product, tensor contraction, image channel remapping, etc.; #X obj 115 1306 #io.aalib; #X text 200 1306 open an aalib window; #X obj 108 1338 #io.dc1394; #X text 200 1338 open a faiawaia "DC" camera (not DV) using a Linux-compatible OS; #X obj 122 1370 #io.grid; #X text 200 1370 read or write a .grid file (GridFlow storage format); #X obj 122 1402 #io.jpeg; #X text 200 1402 read or write a .jpeg file; #X obj 122 1434 #io.mpeg; #X text 200 1434 read a .mpeg video file; #X obj 129 1466 #io.png; #X text 200 1466 read a .png image file; #X obj 129 1498 #io.ppm; #X text 200 1498 read or write a .pbm or .pgm or .ppm image file; #X obj 87 1530 #io.quicktime; #X text 200 1530 read a .mov video file (or perhaps .avi); #X obj 129 1562 #io.sdl; #X text 200 1562 open a SDL window; #X obj 94 1594 #io.videodev; #X text 200 1594 open a V4L1 device (Linux interface for video cameras and video digitisers); #X obj 129 1626 #io.x11; #X text 200 1626 open a X11 window; #X obj 115 1658 #labeling; #X text 200 1658 tag connected pixels with region numbers in a two-tone single-channel image; #X obj 136 1690 #layer; #X text 200 1690 layer two same-sized images; #X obj 66 1722 #line_to_polygon; #X text 200 1722 convert line (as point pair) to polygon (rotated rectangle); #X obj 101 1754 #make_cross; #X text 200 1754 make cross-shaped polygon; #X obj 129 1786 #moment; #X text 200 1786 find 1st or 2nd order moment (weighted average or variance) of the coordinates of a grid; #X obj 87 1818 #moment_polar; #X text 200 1818 convert covariance matrix to the longest and shortest radius of an ellipse and a rotation angle; #X obj 59 1850 #motion_detection; #X text 200 1850 frame difference with some options; #X obj 136 1882 #mouse; #X text 200 1882 converts mouse events to reports of clicks \, drags, unclicks, motions, and separate buttons and wheel; #X obj 66 1914 #noise_gate_yuvs; #X text 200 1914 replaces dark pixels by black pixels in signed YUV images; #X obj 150 1946 #out; #X text 200 1946 open file or device for writing or upload; #X obj 122 1978 #outer +; #X text 200 1978 apply numeric operator on all possible combinations of elements of one grid with elements of another; #X obj 143 2010 #pack; #X text 200 2010 combine floats on separate inlets to make a grid; #X obj 94 2042 #perspective; #X text 200 2042 divide each point by its depth; #X obj 87 2074 #polygon_area; #X text 200 2074 find area of a polygon in square pixels; #X obj 45 2106 #polygon_comparator; #X text 200 2106 find similarity between two polygons independently of rotation \, by radial maps and FFT; #X obj 52 2138 #polygon_each_edge; #X text 200 2138 convert a polygon to a sequence of overlapping 2-sided polygons representing edges; #X obj 73 2170 #polygon_moment; #X text 200 2170 find average of all points inside of a polygon; #X obj 52 2202 #polygon_perimetre; #X text 200 2202 find perimetre of a polygon in pixels (euclidian); #X obj 45 2234 #polygon_radial_map; #X text 200 2234 find radius of a polygon from a given origin \, sampled at equally spaced angles; #X obj 101 2266 #polygonize; #X text 200 2266 (future use); #X obj 108 2298 #posterize; #X text 200 2298 quantise pixel values; #X obj 136 2330 #print; #X text 200 2330 print to console; #X obj 136 2362 #ravel; #X text 200 2362 do #redim so that a grid keeps same number of elements but just one dimension; #X obj 129 2394 #record; #X text 200 2394 wrapper around [#in quicktime]; #X obj 115 2426 #redim (); #X text 200 2426 change the size of a grid by restreaming contents into a new shape; #X obj 94 2458 #remap_image; #X text 200 2458 apply object chain on pixel positions to make new image from chosen pixels of the input image; #X obj 122 2490 #reverse; #X text 200 2490 mirror image of a grid along a dimension; #X obj 59 2522 #rgb_to_greyscale; #X text 200 2522 convert RGB to greyscale; #X obj 94 2554 #rgb_to_rgba; #X text 200 2554 convert RGB to RGBA (but setting alpha to 0); #X obj 101 2586 #rgb_to_yuv; #X text 200 2586 convert RGB to unsigned YUV; #X obj 94 2618 #rgba_to_rgb; #X text 200 2618 convert RGBA to RGB; #X obj 129 2650 #rotate; #X text 200 2650 rotate points through two axes (or rotate pixels as points in a colorspace); #X obj 80 2682 #rotatificator; #X text 200 2682 make rotation matrix for any two dimensions chosen from manyou; #X obj 101 2714 #saturation; #X text 200 2714 multiply chroma by some value; #X obj 115 2746 #scale_by; #X text 200 2746 reduce the size of an image by a whole factor; #X obj 115 2778 #scale_to; #X text 200 2778 scale an image from one size to any other size by deleting or duplicating rows and columns; #X obj 129 2810 #scan +; #X text 200 2810 compute the cumulative sums of each row \, and other similar operations; #X obj 115 2842 #seq_fold; #X text 200 2842 cascade the use of an object on all elements of an incoming grid message sequence; #X obj 136 2874 #slice; #X text 200 2874 crop an image using a start point (top left) and end point (bottom right); #X obj 115 2906 #solarize; #X text 200 2906 like pingpong but on all pixel values of a grid; #X obj 143 2938 #sort; #X text 200 2938 sort each row of a grid; #X obj 129 2970 #spread; #X text 200 2970 add noise to each vector (point or pixel); #X obj 136 3002 #store; #X text 200 3002 store image in RAM \, in-place picture-in-picture, and make lookups in various ways; #X obj 143 3034 #swap; #X text 200 3034 like [swap] for grids; #X obj 157 3066 #t; #X text 200 3066 like [t a a] for grids; #X obj 80 3098 #text_to_image; #X text 200 3098 use a fixed-width font grid to make a tiling of characters as specified by a text string; #X obj 115 3130 #to_float; #X text 200 3130 convert grid to sequence of floats; #X obj 122 3162 #to_list; #X text 200 3162 convert grid to list; #X obj 101 3194 #to_literal; #X text 200 3194 convert grid to grid-literal (list with a # sign); #X obj 129 3226 #to_pix; #X text 200 3226 convert grid to pix (GEM); #X obj 108 3258 #to_symbol; #X text 200 3258 convert grid of ASCII codes to symbol; #X obj 108 3290 #transpose; #X text 200 3290 swap two dimensions out of any \, in a grid; #X obj 143 3322 #type; #X text 200 3322 get a symbol representing the number type of a grid; #X obj 129 3354 #unpack; #X text 200 3354 split a grid into floats on separate outlets; #X obj 129 3386 #window; #X text 200 3386 a [#out window] that can be toggled to appear and disappear; #X obj 101 3418 #yuv_to_rgb; #X text 200 3418 convert unsigned YUV to RGB; #X obj 143 3450 @join; #X text 200 3450 join two grids together along any dimension; #X obj 150 3482 args; #X text 200 3482 pick up the arguments of an abstraction instance \, including nested lists and init-messages; #X obj 143 3514 ascii; #X text 200 3514 write integer as decimal in ascii codes; #X obj 108 3546 ascii_to_f; #X text 200 3546 converts a list of ascii codes to a float; #X obj 94 3578 class_exists; #X text 200 3578 figure out whether a class has been loaded by pd; #X obj 115 3610 condition; #X text 200 3610 Castonguay rectangle bounds-checking; #X obj 143 3642 count; #X text 200 3642 Castonguay counter; #X obj 136 3674 cv.Add; #X text 200 3674 OpenCV addition; #X obj 136 3706 cv.Div; #X text 200 3706 OpenCV division; #X obj 38 3738 cv.HaarDetectObjects; #X text 200 3738 OpenCV (future use); #X obj 115 3770 cv.Invert; #X text 200 3770 OpenCV invert matrix; #X obj 115 3802 cv.Kalman; #X text 200 3802 OpenCV (future use); #X obj 136 3834 cv.Mul; #X text 200 3834 OpenCV multiplication; #X obj 136 3866 cv.SVD; #X text 200 3866 OpenCV singular value decomposition (eigendecomposition); #X obj 136 3898 cv.Sub; #X text 200 3898 OpenCV subtraction; #X obj 129 3930 display; #X text 200 3930 print message or grid inside of the patch; #X obj 136 3962 expect; #X text 200 3962 currently does like list.== (will do more than that in the future); #X obj 157 3994 for; #X text 200 3994 make sequence of float messages for each number in a range with specified stepping; #X obj 129 4026 foreach; #X text 200 4026 convert a list to a sequence of atom messages; #X obj 157 4058 fps; #X text 200 4058 measure frames per second and make statistics; #X obj 122 4090 gf.error; #X text 200 4090 emit error message from the perspective of the current abstraction instance in its parent patch; #X obj 80 4122 gf.io_generate; #X text 200 4122 for internal use by #in and #out; #X obj 108 4154 gf.oneshot; #X text 200 4154 spigot that shuts itself down after each message; #X obj 66 4186 gf.suffix_lookup; #X text 200 4186 find the objectclass corresponding ; #X obj 150 4218 inv*; #X text 200 4218 swapped /; #X obj 150 4250 inv+; #X text 200 4250 swapped -; #X obj 129 4282 list.==; #X text 200 4282 test two lists of floats and/or symbols for equality; #X obj 122 4314 listfind; #X text 200 4314 find index of an element in a list; #X obj 101 4346 listflatten; #X text 200 4346 merge all nested lists together \, depth-first; #X obj 122 4378 listread; #X text 200 4378 find element at an index in a list; #X obj 101 4410 listreverse; #X text 200 4410 mirror image of a list; #X obj 87 4442 parallel_port; #X text 200 4442 send to and receive from a DB25 parallel port; #X obj 122 4474 pingpong; #X text 200 4474 turns value of a counter into a zigzag between 0 and a given value; #X obj 73 4506 plotter_control; #X text 200 4506 make HPGL commands; #X obj 80 4538 plotter_parser; #X text 200 4538 interprets ascii codes as HPGL commands and output them as messages; #X obj 143 4570 range; #X text 200 4570 multiple moses in cascade; #X obj 94 4602 receives \$0-; #X text 200 4602 multiple receives with common outlet and other outlet telling the name of intended destination; #X obj 136 4634 route2; #X text 200 4634 route messages but keep them intact (does not remove selector); #X obj 45 4666 send39 \$0-patchname; #X text 200 4666 backward-compatibility crutch for dynamic patching in pd 0.39; #X obj 122 4698 seq_fold; #X text 200 4698 cascade the use of an object on all elements of an incoming message sequence; #X obj 143 4730 shunt; #X text 200 4730 demultiplexer: send input to separately specified outlet; #X obj 108 4762 systemtime; #X text 200 4762 time spent by process in kernel mode \, as measured by the OS; #X obj 129 4794 tsctime; #X text 200 4794 high-resolution real time \, as measured by the CPU; #X obj 115 4826 unix_time; #X text 200 4826 real time as measured by the OS \, including date; #X obj 122 4858 usertime; #X text 200 4858 time spent by process in non-kernel mode \, as measured by the OS; #X obj 143 4890 var.#; #X text 200 4890 like [f] for grids;