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