G'MIC(1)						      General Commands Manual							  G'MIC(1)

NAME
gmic - Perform generic image processing operations, through the G'MIC language interpreter. HELP
gmic : GREYC's Magic Image Converter (Jun 21 2012, 18:34:55). Version 1.5.1.6, Copyright (C) 2008-2012, David Tschumperle (http://gmic.sourceforge.net) Usage ----- gmic [command1 [arg1_1,arg1_2,..]] .. [commandN [argN_1,argN_2,..]] 'gmic' is an open-source interpreter of the G'MIC language, a script-based programming language dedicated to the design of image processing pipelines. It can be used to convert, manipulate, filter and visualize datasets made of one or several 1d/2d or 3d multi-spectral images. Here you will find a complete description of the G'MIC language basics and rules. ** Overall context : - At any time, G'MIC manages one list of numbered (and optionally named) pixel-based images, entirely stored in computer memory. - The first image of the list has indice '0' and is denoted by '[0]'. The second image of the list is denoted by '[1]', the third by '[2]' and so on. - Negative indices are treated in a cyclic way : '[-1]' refers to the last image of the list, '[-2]' to the penultimate one, etc. Thus, if the list has 4 images, expressions '[1]' and '[-3]' both designates the second image of the list. - A named image may be denoted by '[name]' if 'name' uses characters set [a-zA-Z0-9_] and does not start with a number. Image names can be set or reassigned at any moment during the processing pipeline (see commands '-name' and '-input'). - G'MIC defines a set of various commands and substitution mechanisms to allow the design of complex pipelines managing this list of images, in a very flexible way : You can insert or remove images in the list, rearrange image indices, process images (individually or as a group), merge image data together and output image files. - Such a pipeline can be written itself as a custom G'MIC command storable in a custom commands file, which can be re-used afterwards in another bigger pipeline if necessary. ** Image definition and terminology : - In G'MIC, an image is modeled as a 1d, 2d, 3d or 4d array of scalar values, uniformly discretized on a rectangular/parallelepipedic domain. - The four dimensions of these arrays are respectively denoted by : . 'width', the number of image columns (size along the 'x'-axis). . 'height', the number of image rows (size along the 'y'-axis). . 'depth', the number of image slices (size along the 'z'-axis). The depth is equal to 1 for usual 2d color or grayscale images. . 'spectrum', the number of image channels (size along the 'c'-axis). The spectrum is respectively equal to 3 and 4 for usual RGB and RGBA color images. - There are no size limitations on each image dimensions. Particularly, the number of image slices or channels can be of arbitrary size within the limits of available memory. - The width, height and depth of an image are considered as 'spatial' dimensions, while the spectrum has a 'multi-spectral' meaning. Thus, a 4d image in G'MIC should be most often regarded as a 3d dataset of multi-spectral voxels. Most of the G'MIC commands will stick with this idea (e.g. command '-blur' will blur images only along the 'xyz' axes). - All pixel values of all images of the list have the same datatype. It can be one among : . 'bool' : Stands for 'boolean'. Value range is { 0=false | 1=true }. . 'uchar' : Stands for 'unsigned char'. Value range is [0,255] (8bits). This type of pixel coding is commonly used to store 8bits/channels RGB[A] images. . 'char' : Value range is [-128,127] (8bits). . 'ushort' : Stands for 'unsigned short'. Value range is [0,65535] (16bits). This type of pixel coding is commonly used to store 16bits/channels RGB[A] images. . 'short' : Value range is [-32768,32767] (16bits). . 'uint' : Stands for 'unsigned int'. Value range is [0,2^32-1] (32bits). . 'int' : Value range is [-2^31,2^31-1] (32 bits). . 'float' : Value range is [-3.4E38,+3.4E38] (32bits). This type of coding is able to store pixels as 32 bits float-valued numbers. This is the default datatype used by G'MIC image processing operations. . 'double' : Value range is [-1.7E308,1.7E308] (64bits). This type of coding is able to store pixels as 64 bits float-valued numbers. - Considering pixel datatypes different than 'float' is generally useless, except to force the input/output of image data to a prescribed binary format. Hence, most G'MIC image image processing commands are available only for the default 'float' pixel datatype (see command '-type' if you need to switch to another pixel datatype). ** Items of a processing pipeline : - In G'MIC, an image processing pipeline is described as a sequence of items separated by the space character ' '. Such items are interpreted and executed from the left to the right. For instance, the expression : 'input.jpg -blur 3,0 -sharpen 10 -resize 200%,200% -output output.jpg' defines a valid pipeline composed of nine G'MIC items. - A G'MIC item is a string which represents either a command, a set of command arguments, a filename, or a special input string. - Escape characters '' and double quotes ' containing spaces, or any other character sequences. For instance, the strings 'single item' and ' ** Input data items : - If a specified G'MIC item appears to be an existing filename, the corresponding image data are loaded and inserted at the end of the image list. - Special filenames '-' and '-.ext' stand for the standard input/output streams, optionally forced to be in a specific 'ext' file format (e.g. '-.jpg' or '-.png'). - The following special input strings may be used as G'MIC items to create and insert new images with prescribed values, at the end of the image list : . '[selection]' or '[selection]xN' : Insert 1 or N copies of selected existing images. 'selection' may contain one or several images (see next section for details). . 'width[%],_height[%],_depth[%],_spectrum[%],_values' : Insert a new image with specified size and values (adding '%' to a dimension means 'percentage of the size along the same axis, taken from the last image '[-1]''). Any specified dimension can be also written as '[image]', and is then set to the size (along the same axis) of the existing specified image [image]. 'values' can be either a sequence of numbers separated by commas ',', or a mathematical expression, as e.g. in input item '256,256,1,3,if(c==0,x,if(c==1,y,0))' which creates a 256x256 RGB color image with a spatial shading on the red and green channels. . '(v1,v2,..)' : Insert a new image from specified prescribed values. Value separator inside parentheses can be ',' (column separator.), ';' (row sep.), '/' (slice sep.) or '^' (channel sep.). For instance, expression '(1,2,3;4,5,6;7,8,9)' creates a 3x3 matrix (scalar image), with values from 1 to 9. . '0' : Insert a new 'empty' image, containing no pixel data. Empty images are used only in rare occasions. - Input item 'name=value' declares a new local or global variable 'name', or assign a new value to an existing variable. Variable names use characters set [a-zA-Z0-9_] and cannot start with a number. A variable definition is always local to the current command except when it starts by the underscore character '_'. In that case, it becomes also accessible by any command invoked outside the current command scope. ** Command items and selections : - A G'MIC item starting by '-' designates a command, most of the time. Generally, commands perform image processing operations on one or several available images of the list. - Common commands have two equivalent names (regular and short). For instance, command names '-resize' and '-r' refer to the same image resizing action. - A G'MIC command may have mandatory or optional arguments. Command arguments must be specified in the next item on the command line. Commas ',' are used to separate multiple arguments, if any required. - The execution of a G'MIC command may be restricted only to a subset of the image list, by appending '[subset]' to the command name. Examples of valid syntaxes for 'subset' are: . '-com[0,1,3]' : Apply command only on images [0],[1] and [3]. . '-com[3-5]' : Apply command only on images [3] to [5] (i.e, [3],[4] and [5]). . '-com[50%-100%]' : Apply command only on the second half of the image list. . '-com[0,-4--1]' : Apply command only on the first and the four latest images. . '-com[0-9:3]' : Apply command only on images [0] to [9], with a step of 3 (i.e. on images [0], [3], [6] and [9]). . '-com[0--1:2]' : Apply command only on images of the list with even indices. . '-com[0,2-4,50%--1]' : Apply command on images [0],[2],[3],[4] and on the second half of the image list. . '-com[^0,1]' : Apply command on all images except the first two. . '-com[name1,name2]' : Apply command on named images 'name1' and 'name2'. - Indices in selections are always sorted in increasing order, and duplicate indices are discarded. For instance, selections '[3-1,1-3]' and '[1,1,1,3,2]' are both equivalent to '[1-3]'. If you want to repeat a single command multiple times on an image, use a '-repeat..-done' loop. Inverting the order of images in a selection can be achieved by inverting first the order of the images in the list, with command '-reverse[selection]'. - G'MIC commands invoked without '[subset]' are applied on all images of the list. - A G'MIC command starting with '--' instead of '-' does not act 'in-place' but inserts its result as one or several new images at the end of the image list. - There are two different types of commands that can be run by the G'MIC interpreter : . Native commands, are hard-coded functionalities in the interpreter core. They are thus compiled as machine code and run quickly, most of the time. Omitting an argument when invoking a native command is not permitted, except if all following arguments are also omitted. For instance, call to '-plasma 10,,5' is invalid but '-plasma 10' is correct. . Custom commands, are defined as G'MIC pipelines of native or custom commands. They are interpreted by the G'MIC interpreter, and run slower than native commands. But omitting arguments when invoking a custom command is permitted. For instance, expressions '-flower ,,,100,,2' or '-flower ,' are correct. - A user may easily add its own custom commands to the G'MIC interpreter (see section 'Adding custom commands'). Native commands cannot be added unless you modify the G'MIC interpreter source code. ** Inputs / outputs properties : - G'MIC is able to read/write most of the classical image file formats, including : . 2d grayscale/color files : .png, .jpeg, .gif, .pnm, .tif, .bmp, .. . 3d volumetric files : .dcm, .hdr, .nii, .pan, .inr, .pnk, .. . Image sequences : .mpeg, .avi, .mov, .ogg, .flv, .. . Generic ascii or binary data files : .cimg, .cimgz, .dlm, .asc, .pfm, .raw, .txt, .h. . 3d object files : .off. - When dealing with color images, G'MIC generally reads, writes and displays data using the usual RGB color space. - G'MIC is able to manage 3d objects that may be read from files or generated by G'MIC commands. They are stored as one-column scalar images containing the object data, in the following order : { magic_number; sizes; vertices; primitives; colors; opacities }. These 3d representations can be processed as regular float-valued images. (see command '-split3d' for accessing each of these 3d object data separately). - Be aware that usual file formats may be sometimes not adapted to store all the available image data, since G'MIC uses float-valued coding of image pixels. For instance, saving an image that was initially loaded as a 16bits/channel image, as a .jpg file will result in loss of informations. Use the .cimg file extension (or .cimgz, its compressed version) to ensure that all data precision will be preserved when saving images. - File options can/must be set for these specific file formats : . Video files : Only sub-frames of an image sequence may be loaded, using the input expression 'video.ext,[first_frame[%][,last_frame[%][,step]]]'. Output framerate and bitrate (in Kb/s) can be also set by using the output expression 'file.mpg,_fps,_bitrate'. . .raw binary files : Image dimensions and input pixel type may be specified when loading .raw files with input expresssion 'file.raw,width[,type][,height[,depth[,dim]]]]'. If no dimensions are specified, the resulting image is a one-column vector with maximum possible height. Pixel type can also be specified with the output expression 'file.raw[,type]'. 'type' can be { bool | uchar | char | ushort | short | uint | int | float | double }. . .yuv files : Image dimensions must be specified, and only sub-frames of an image sequence may be loaded, using the input expression 'file.yuv,width,height[,first_frame[,last_frame[,step]]]'. . .jpeg files : The output quality may be specified (in %), using the output expression 'file.jpg,30' (here, to get a 30% quality output). . .mnc files : The output header can set from another file, using the output expression 'file.mnc,header_template.mnc'. . Filenames with extension '.gmic' are assumed to be G'MIC custom commands files. Loading such a file will add the commands it defines to the interpreter. . Inserting 'ext:' on the beginning of a filename (e.g. 'jpg:filename') forces G'MIC to read/write the file as it would have been done if it had the specified extension. - Some input/output formats and options may not be supported by your current version of 'gmic', depending on the configuration flags set for the build of the 'gmic' binaries. ** Substitution rules : - G'MIC items containing '@', '$' or '{}' may be substituted before being interpreted. Use the substituting expressions below to access data from the interpreter environment : . '@#' is substituted by the current number of images in the list. . '@.' is substituted by the current version number of the G'MIC interpreter . '@%' is substituted by the pid of the current process. . '@|' is substituted by the current value (expressed in seconds) of a millisecond precision timer. . '@?' is substituted by the current data type of image pixels. . '@^' is substituted by the current verbosity level. . '@*' is substituted by the current 3d rendering mode. . '@/' is substituted by the current number of levels in the command scope. . '@{/}' or '@{/,subset}' are substituted by the content of the global scope, or a subset of it. If specified subset refers to multiple scope items, they are separated by slashes '/'. . '@>' and '@<' are equivalent. They are both substituted by the number of nested 'repeat-done' loops that are currently running. . '@{>}' or '@{>,subset}' are substituted by the indice values (or a subset of them) of the running 'repeat-done' loops, expressed in the ascending order, starting from 0. If specified subset refers to multiple indices, they are separated by commas ','. . '@{<}' or '@{<,subset}' do the same but in descending order. . '@indice' or '@{indice,feature}' are substituted by the list of pixel values of the image [indice] (separated by commas), or by a specific feature (or subset) of it. 'indice' can be an indice or an image name. Requested 'featured' can be one of : . 'w' : image width (number of image columns). . 'h' : image height (number of image rows). . 'd' : image depth (number of image slices). . 's' : image spectrum (number of image channels). . 'wh' : image width x image height. . 'whd' : image width x image height x image depth. . 'whds' : image width x image height x image depth x image spectrum. (i.e. number of values in the specified image, eq. to '#'). . 'r' : image shared state (1, if the pixel buffer is shared, 0 otherwise). . 'n' : image name or filename (if the image has been read from a file). . 'b' : image basename (i.e. filename without the folder path nor extension). . 'x' : image extension (i.e last characters after the last '.' in the filename). . 'f' : image folder name. . '#' : number of image values (i.e. width x height x depth x spectrum). . '+' : sum of all pixel values. . '-' : difference of all pixel values. . '*' : product of all pixel values. . '/' : quotient of all pixel values. . 'm' : minimum pixel value. . 'M' : maximum pixel value. . 'a' : average pixel value. . 'v' : variance of pixel values. . 't' : text string built from the image values, regarded as ascii codes. . 'c' : (x,y,z,c) coordinates of the minimum value, separated by commas ','. . 'C' : (x,y,z,c) coordinates of the maximum value, separated by commas ','. . '(x[%],_y[%],_z[%],_c[%],_boundary)' : pixel value at (x[%],y[%],z[%],c[%]), with specified boundary conditions { 0=dirichlet | 1=neumann | 2=cyclic }. . Any other 'feature' is considered either as a specified subset of image values, or as a mathematical expression to evaluate (associated to selected image). For instance, '@{-1,0-50%}' is substituted by the sequence of numerical values coming from the first half data of the last image, separated by commas ','. Expression '@{0,w+h}' is substituted by the sum of the width and height of the first image. . '@!' is substituted by the visibility state of the instant display window [0] (can be { 0=closed | 1=visible }). . '@{!,feature}' or '@{!indice,feature}' is substituted by a specific feature of the instant display window [0] (or [indice], if specified). Requested 'feature' can be : . 'w' : display width (i.e. width of the display area managed by the window). . 'h' : display height (i.e. height of the display area managed by the window). . 'wh' : display width x display height. . 'd' : window width (i.e. width of the window widget). . 'e' : window height (i.e. height of the window widget). . 'de' : window width x window height. . 'u' : screen width (actually independent on the window size). .' v' : screen height (actually independent on the window size). . 'uv' : screen width x screen height. . 'x' : X-coordinate of the mouse position (or -1, if outside the display area). . 'y' : Y-coordinate of the mouse position (or -1, if outside the display area). . 'b' : state of the mouse buttons { 1=left-but. | 2=right-but. | 4=middle-but. }. . 'o' : state of the mouse wheel. . 'k' : decimal code of the pressed key if any, 0 otherwise. . 'n' : current normalization type of the instant display. . 'c' : boolean (0 or 1) telling if the instant display has been closed recently. . 'r' : boolean telling if the instant display has been resized recently. . 'm' : boolean telling if the instant display has been moved recently. . Any other 'feature' stands for a keycode name in capital letters, and is substi- tuted by a boolean describing the current key state { 0=pressed | 1=released }. . '@{ specified command line (see command '-status'). Verbosity level is decremented before the execution of the command, and incremented back afterwards. . Expression '@{}' stands thus for the current status value. - $name and '${name}' are both substituted by the value of the specified named variable (set previously by item 'name=value'), or by the current positive indice of the named image '[name]', or by the value of the named OS environment variable (in this order). - '$>' and '$<' (resp. '${>}' and '${<}') are shortcuts respectively for '@{>,-1}' and '@{<,-1}'. They refer to the increasing/decreasing indice of the latest (currently running) 'repeat..done' loop. - Any other expression inside braces (as in '{expression}') is considered as a mathematical expression, and is evaluated, except for the three following cases : . If expression starts and ends by single quotes, it is substituted by the sequence of ascii codes that composes the specified string, separated by commas ','. For instance, item '{'foo'}' is substituted by '102,111,111'. . If expression starts and ends with backquotes '`', it is substituted by the string whose ascii codes are given by the list of values in between the backquotes. For instance, item '{`102,111,111`}' is substituted by 'foo'. . If expression contains operator ''=='' or ''!='', it is substituted by 0 or 1, whether the strings beside the operator are the same or not (case-sensitive). For instance, both items '{foo'=='foo}' and '{foo'!='FOO}' are substituted by '1'. . If expression starts with an underscore '_', it is substituted by the mathematical evaluation of the expression, truncated to a readable format. - Item substitution is never done in items between double quotes. One must break the quotes to enable substitution if needed, as in is then a convenient way to disable the substitutions mechanism in items, when necessary. - One can also disable the substitution mechanism on items outside double quotes, by escaping the '@','{','}' or '$' characters, as in '3+4 doesn't evaluate'. ** Mathematical expressions : - G'MIC has an embedded mathematical parser. It is used to evaluate expressions inside braces '{}', or formulas in commands that may take one as an argument (e.g. '-fill'). - When used in commands, a formula is evaluated for each pixel of the selected images. - The math parser understands the following set of functions, operators and variables : _ Usual operators : || (logical or), && (logical and), | (bitwise or), & (bitwise and), !=, ==, <=, >=, <, >, << (left bitwise shift), >> (right bitwise shift), -, +, *, /, % (modulo), ^ (power), ! (logical not), ~ (bitwise not). _ Usual functions : sin(), cos(), tan(), asin(), acos(), atan(), sinh(), cosh(), tanh(), log(), log2(), log10(), exp(), sign(), abs(), atan2(), round(), narg(), arg(), isval(), isnan(), isinf(), isint(), isbool(), rol() (left bit rotation), ror() (right bit rotation), min(), max(), sinc(), int(). Function 'atan2()' is the version of atan() with two arguments 'y,x' (as in C/C++). Function 'narg()' returns the number of specified arguments. Function 'arg(i,a_1,..,a_n)' returns the ith argument a_i. Functions 'min()' and 'max()' can be called with an arbitrary number of arguments. Functions 'isval()', 'isnan()', 'isinf()', 'isbool()' can be used to test the type of a given number or expression. _ The variable names below are pre-defined. They cannot be overloaded : . 'w' : width of the associated image, if any (0 otherwise). . 'h' : height of the associated image, if any (0 otherwise). . 'd' : depth of the associated image, if any (0 otherwise). . 's' : spectrum of the associated image, if any (0 otherwise). . 'x' : current processed column of the associated image, if any (0 otherwise). . 'y' : current processed row of the associated image, if any (0 otherwise). . 'z' : current processed slice of the associated image, if any (0 otherwise). . 'c' : current processed channel of the associated image, if any (0 otherwise). . 'i' : current processed pixel value (i.e. value located at (x,y,z,c)) of the associated image, if any (0 otherwise). . 'im','iM','ia','iv' : Respectively the minimum, maximum, average values and variance of the associated image, if any (0 otherwise). . 'xm','ym','zm','cm' : The pixel coordinates of the minimum value in the associated image, if any (0 otherwise). . 'xM','yM','zM','cM' : The pixel coordinates of the maximum value in the associated image, if any (0 otherwise). . 'pi' : value of pi, i.e. 3.1415926.. . 'e' : value of e, i.e. 2.71828.. . '?' or 'u' : a random value between [0,1], following a uniform distribution. . 'g' : a random value, following a gaussian distribution of variance 1 (roughly in [-5,5]). _ These special operators can be used : . ';' : expression separator. The returned value is always the last encountered expression. For instance expression '1;2;pi' is evaluated as 'pi'. . '=' : variable assignment. Variables in mathematical parser can only refer to. numerical values. Variable names are case-sensitive. Use this operator in conjunction with ';' to define complex evaluable expressions, such as 't=cos(x);3*t^2+2*t+1'. These variables remain local to the mathematical parser and cannot be accessed outside the evaluated expression. _ The following specific functions are also defined : . 'if(expr_cond,expr_then,expr_else)' : return value of 'expr_then' or 'expr_else', depending on the value of 'expr_cond' (0=false, other=true). For instance, G'MIC command '-fill if(x%10==0,255,i)' will draw blank vertical lines on every 10th column of an image. . '?(max)' or '?(min,max)' : return a random value between [0,max] or [min,max], following a uniform distribution. 'u(max)' and 'u(0,max)' mean the same. . 'i(a,_b,_c,_d,_interpolation,_boundary)' : return the value of the pixel located at position (a,b,c,d) in the associated image, if any (0 otherwise). Interpolation parameter can be { 0=nearest neighbor | other=linear }. Boundary conditions can be { 0=dirichlet | 1=neumann | 2=cyclic }. Omitted coordinates are replaced by their default values which are respectively x, y, z, c and 0. For instance command '-fill 0.5*(i(x+1)-i(x-1))' will estimate the X-derivative of an image with a classical finite difference scheme. - The last image of the list is always associated to the evaluations of '{expressions}', e.g. G'MIC sequence '256,128 -f {w}' will create a 256x128 image filled with value 256. ** Image and data viewers : - G'MIC has some very handy embedded visualization modules, for 1d signals (command '-plot'), 1d/2d/3d images (command '-display') and 3d objects (command '-display3d'). It enables an interactive view of the selected image data. - The following keyboard shortcuts are available in the interactive viewers : . CTRL+D : Increase window size. . CTRL+C : Decrease window size. . CTRL+R : Reset window size. . CTRL+F : Toggle fullscreen mode. . CTRL+S : Save current window snapshot as numbered file 'gmic_xxxx.bmp'. . CTRL+O : Save current instance of the viewed data, as numbered file 'gmic_xxxx.cimgz'. - Shortcuts specific to the 1d/2d/3d image viewer are : . CTRL+P : Play z-stack of frames as a movie (for volumetric 3d images). . CTRL+V : Enable/disable 3D view (for volumetric 3d images). . CTRL+(mousewheel) : Zoom in/out. . SHIFT+(mousewheel) : Go left/right. . ALT+(mousewheel) : Go up/down. . Numeric PAD : Zoom in/out (+/-) and move through zoomed image (digits). . BACKSPACE : Reset zoom scale. - Shortcuts specific to the 3d object viewer are : . (mouse)+(left mouse button) : Rotate 3d object. . (mouse)+(right mouse button) : Zoom 3d object. . (mouse)+(middle mouse button) : Shift 3d object. . (mousewheel) : Zoom in/out. . CTRL+F1 .. CTRL+F6 : Switch between different 3d rendering modes. . CTRL+Z : Enable/disable z-buffered rendering. . CTRL+A : Show/hide 3d axes. . CTRL+G : Save 3d object, as numbered file 'gmic_xxxx.off'. . CTRL+T : Switch between single/double-sided 3d modes. ** Adding custom commands : - Custom commands can be defined by a user, through the use of G'MIC custom commands files. - A command file is a simple ascii text file, where each line starts either by 'command_name : command_definition' or 'command_definition (continuation)'. - Custom command names must use characters [a-zA-Z0-9_] and cannot start with a number. - Any ' # comment' expression found in a custom commands file is discarded by the G'MIC interpreter, wherever it is located in a line. - A default command file is already provided within the G'MIC package. It is located at 'http://gmic.sourceforge.net/gmic_def.xxxx', where 'xxxx' has to be replaced by the 4 digits of the current G'MIC version number. Looking at it is a good place to start learning to create your own custom commands. All the commands from this default command file are already included by default in the current version of the G'MIC interpreter. - The default command file located at 'http://gmic.sourceforge.net/gmic_def.xxxx' may be updated/corrected by the G'MIC developers. You can thus download and include it with the '-command' directive to update your default command definitions as well. - In custom commands, the following $-expressions are substituted : . '$*' is substituted by a verbatim copy of the specified arguments string. . '$#' is substituted by the maximum indice of known arguments (either specified by the user or set to a default value in the custom command). . '$?' is substituted by a string telling about the command subset restriction (only useful when custom commands need to output descriptive messages). . '$i' and '${i}' are both substituted by the i-th specified argument. Negative indices such as '${-j}' are allowed and refer to the j^th latest argument. '$0' is substituted by the custom command name. . '${i=default}' is substituted by the value of $i (if defined) or by its new value set to 'default' otherwise ('default' may be a $-expression as well). . '${subset}' is substituted by the arguments values (separated by commas ',') of a specified argument subset. For instance expression '${2--2}' is substitued by all specified arguments except the first and the last one. Expression '${^0}' is then substituted by all arguments of the invoked command (eq. to '$*' if all specified arguments have indeed a value). . '$=var' is substituted by the set of instructions that will assign each argument $i to the named variable 'var$i' (for i in [0..$#]). This is particularly useful when a custom command want to manage variable numbers of arguments. Variables names must use characters [a-zA-Z0-9_] and cannot start with a number - These particular $-expressions are always substituted, even in double quoted items or when the dollar sign '$' is escaped with a backslash ''. To avoid substitution, place an empty double quoted string just after the '$' (as in '$ - Specifying arguments may be skipped when invoking a custom command, by replacing them by commas ',' as in expression '-flower ,,3'. Omitted arguments are set to their default values, which must be thus explicitely defined in the code of the corresponding custom command (using default argument expressions as '${1=default}'). - If one numbered argument encoutered in a custom command has no values, the interpreter throws an error. List of native commands ----------------------- All native G'MIC commands are listed below, classified by themes. When several choices of command arguments are possible, they appear separated by '|'. An argument specified inside '[]' or starting by '_' is optional except when standing for an existing image [image], where 'image' can be either an indice number or an image name. In this case, the '[]' characters are mandatory when writing the item. A command marked with (*) is available for all image types, otherwise only for the default 'float' pixel datatype. Remember that native commands are faster than custom commands, so use then when possible. ** Global options : -debug (*) Activate debug mode. When activated, the G'MIC interpreter becomes very verbose and outputs additionnal log messages describing the internal state of the interpreter on the standard output. This is very useful for debugging the execution of a custom command. -help _command (*) Display help (optionally for specified command only) and exit. (eq. to '-h'). -version (*) Display current version number and exit. ** Inputs / outputs : -camera _camera_index>=-1,_nb_frames>0,_skip_frames>=0,release_camera={ 0 | 1 } (*) Insert one or several frames from specified camera, with custom delay between frames (in ms). Set 'camera_index' to -1 to use the default camera device. When 'release_camera==1', the camera stream is released instead of capturing new images. Default values : 'camera_index=-1', 'nb_frames=1', 'skip_frames=0' and 'release_camera=0'. -command filename | (*) http[s]://URL | Import G'MIC custom commands from specified file, URL or string. (eq. to '-m'). Imported commands are available directly after the '-command' invokation. -display Display selected images in an interactive viewer (use the instant window [0] if opened). (eq. to '-d'). -display3d Display selected 3d objects in an interactive viewer (use the instant window [0] if opened). (eq. to '-d3d'). -echo message (*) Output specified message, on the standard output. (eq. to '-e'). Command subset (if any) stands for displayed scope indices instead of image indices. -input [type:]filename | (*) [type:]http://URL | [selection]x_nb_copies>0 | { width>0[%] | [image_w] },{ _height>0[%] | [image_h] },{ _depth>0[%] | [image_d] }, { _spectrum>0[%] | [image_s] },_{ value1,_value2,.. | 'formula' } | (value1{,|;|/|^}value2{,|;|/|^}..) | 0 Insert a new image taken from a filename or from a copy of an existing image ['indice'], or insert new image with specified dimensions and values. Single quotes may be omitted in 'formula'. Specifying argument '0' inserts an 'empty' image. (eq. to '-i' | (no args)). Default values : 'nb_copies=1', 'height=depth=spectrum=1' and 'value1=0'. -output [type:]filename,_format_options (*) Output selected images as one or several numbered file(s). (eq. to '-o'). Default value : 'format_options=(undefined). -plot _plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax | 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax Display selected image or formula in an interactive viewer (use the instant window [0] if opened). 'plot_type' can be { 0=none | 1=lines | 2=splines | 3=bar }. 'vertex_type' can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }. 'xmin','xmax','ymin','ymax' set the coordinates of the displayed xy-axes. Default values : 'plot_type=1', 'vertex_type=1' and 'xmin=xmax=ymin=ymax=0 (auto)'. -print (*) (eq. to '-p'). Output informations on selected images, on the standard output. -select feature_type Interactively select a feature from selected images (use the instant window [0] if opened). 'feature_type' can be { 0=point | 1=segment | 2=rectangle | 3=ellipse }. The retrieved feature is returned as a 3d or 6d vector containing the feature coordinates. -shared x0[%],x1[%],y[%],z[%],v[%] | (*) y0[%],y1[%],z[%],v[%] | z0[%],z1[%],v[%] | v0[%],v1[%] | (no args) Insert shared buffers from (opt. points/rows/planes/channels of) selected images. (eq. to '-sh'). -shell (*) Start shell environment, with selected images. -srand value | (*) (no args) Set random generator seed. If no argument is specified, a random value is used as the random generator seed. -type datatype (*) Set pixel datatype for all images of the list. 'datatype' can be { bool | uchar | char | ushort | short | uint | int | float | double }. -uncommand command_name | * (*) Discard last definition of specified custom command. Set argument to '*' for discarding all existing custom commands. -verbose level | (*) { + | - } Set or increment/decrement the verbosity level. (eq. to '-v'). When 'level'>=0, G'MIC log messages are displayed on the standard output. Default value for the verbosity level is 0. -wait delay | (no args) Wait for a given delay (in ms) or for a user event occuring on the selected instant window. 'delay' can be { <0=delay+flush | 0=event | >0=delay }. Command subset (if any) stands for instant window indices instead of image indices. -warn message (*) Print specified warning message, on the standard output. Command subset (if any) stands for displayed scope indices instead of image indices. -window _width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_title Display selected images into an instant window with specified size, normalization type, fullscreen mode and title. (eq. to '-w'). If 'width' or 'height' is set to -1, the corresponding dimension is adjusted to the window or image size. 'width'=0 or 'height'=0 closes the instant window. 'normalization' can be { -1=keep same | 0=none | 1=always | 2=1st-time | 3=auto }. 'fullscreen' can be { -1=keep same | 0=no | 1=yes }. You can manage up to 10 different instant windows by using the numbered variants '-w0' (default, eq. to '-w'),'-w1',..,'-w9' of the command '-w'. Default values : 'width=height=normalization=fullscreen=-1' and 'title=(undefined)'. ** List manipulation : -keep (*) Keep only selected images. (eq. to '-k'). -move position[%] (*) Move selected images at specified position. (eq. to '-mv'). -name name (*) Set name of selected images. (eq. to '-nm'). -remove (*) Remove selected images. (eq. to '-rm'). -reverse (*) Reverse positions of selected images. (eq. to '-rv'). ** Mathematical operators : -abs Compute the pointwise absolute values of selected images. -acos Compute the pointwise arc-cosine of selected images. -add value[%] | [image] | 'formula' | (no args) Add specified value, image or mathematical expression to selected images, or compute the pointwise sum of selected images. (eq. to '-+'). -and value[%] | [image] | 'formula' | (no args) Compute the bitwise AND of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise AND of selected images. -asin Compute the pointwise arc-sine of selected images. -atan Compute the pointwise arc-tangent of selected images. -atan2 [x_argument] Compute the pointwise oriented arc-tangent of selected images. Each selected image is regarded as the y-argument of the arc-tangent function, while the specified image gives the corresponding x-argument. -bsl value[%] | [image] | 'formula' | (no args) Compute the bitwise left shift of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise left shift of selected images. (eq. to '-<<'). -bsr value[%] | [image] | 'formula' | (no args) Compute the bitwise right shift of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise right shift of selected images. (eq. to '->>'). -cos Compute the pointwise cosine of selected images. -cosh Compute the pointwise hyperbolic cosine of selected images. -div value[%] | [image] | 'formula' | (no args) Divide selected image by specified value, image or mathematical expression, or compute the pointwise quotient of selected images. (eq. to '-/'). -eq value[%] | [image] | 'formula' | (no args) Compute the boolean equality of selected images with specified value, image or mathematical expression, or compute the boolean equality of selected images. (eq. to '-=='). -exp Compute the pointwise exponential of selected images. -ge value[%] | [image] | 'formula' | (no args) Compute the boolean 'greater or equal than' of selected images with specified value, image or mathematical expression, or compute the boolean 'greater or equal than' of selected images. (eq. to '->='). -gt value[%] | [image] | 'formula' | (no args) Compute the boolean 'greater than' of selected images with specified value, image or mathematical expression, or compute the boolean 'greater than' of selected images. (eq. to '->'). -le value[%] | [image] | 'formula' | (no args) Compute the boolean 'less or equal than' of selected images with specified value, image or mathematical expression, or compute the boolean 'less or equal than' of selected images. (eq. to '-<='). -lt value[%] | [image] | 'formula' | (no args) Compute the boolean 'less than' of selected images with specified value, image or mathematical expression, or compute the boolean 'less than' of selected images. (eq. to '-<'). -log Compute the pointwise base-e logarithm of selected images. -log10 Compute the pointwise base-10 logarithm of selected images. -log2 Compute the pointwise base-2 logarithm of selected images. -max value[%] | [image] | 'formula' | (no args) Compute the maximum between selected images and specified value, image or mathematical expression, or compute the pointwise maxima between selected images. -mdiv value[%] | [image] | 'formula' | (no args) Compute the matrix division of selected matrices/vectors by specified value, image or mathematical expression, or compute the matrix division of selected images. (eq. to '-//'). -min value[%] | [image] | 'formula' | (no args) Compute the minimum between selected images and specified value, image or mathematical expression, or compute the pointwise minima between selected images. -mod value[%] | [image] | 'formula' | (no args) Compute the modulo of selected images with specified value, image or mathematical expression, or compute the pointwise sequential modulo of selected images. (eq. to '-%'). -mmul value[%] | [image] | 'formula' | (no args) Compute the matrix multiplication of selected matrices/vectors by specified value, image or mathematical expression, or compute the matrix multiplication of selected images. (eq. to '-**'). -mul value[%] | [image] | 'formula' | (no args) Multiply selected images by specified value, image or mathematical expression, or compute the pointwise product of selected images. (eq. to '-*'). -neq value[%] | [image] | 'formula' | (no args) Compute the boolean inequality of selected images with specified value, image or mathematical expression, or compute the boolean inequality of selected images. (eq. to '-!='). -or value[%] | [image] | 'formula' | (no args) Compute the bitwise OR of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise OR of selected images. -pow value[%] | [image] | 'formula' | (no args) Raise selected image to the power of specified value, image or mathematical expression, or compute the pointwise sequential powers of selected images. (eq. to '-^'). -rol value[%] | [image] | 'formula' | (no args) Compute the bitwise left rotation of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise left rotation of selected images. -ror value[%] | [image] | 'formula' | (no args) Compute the bitwise right rotation of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise right rotation of selected images. -sign Compute the pointwise sign of selected images. -sin Compute the pointwise sine of selected images. -sinc Compute the pointwise sinc function of selected images. -sinh Compute the pointwise hyperbolic sine of selected images. -sqr Compute the pointwise square function of selected images. -sqrt Compute the pointwise square root of selected images. -sub value[%] | [image] | 'formula' | (no args) Subtract specified value, image or mathematical expression to selected images, or compute the pointwise difference of selected images. (eq. to '--'). -tan Compute the pointwise tangent of selected images. -tanh Compute the pointwise hyperbolic tangent of selected images. -xor value[%] | [image] | 'formula' | (no args) Compute the bitwise XOR of selected images with specified value, image or mathematical expression, or compute the pointwise sequential bitwise XOR of selected images. ** Values manipulation : -cut { value0[%] | [image0] },{ value1[%] | [image1] } | [image] | (no args) Cut values of selected images in specified range. (eq. to '-c'). (noargs) runs interactive mode (uses the instant window [0] if opened). -endian (*) Reverse data endianness of selected images. -equalize nb_levels>0[%],_value0[%],_value1[%] Equalize histograms of selected images. If value range is specified, the equalization is done only for pixels in the specified value range. Argument 'value1' must be specified if 'value0' is set. Default values : 'value0=0%' and 'value1=100%'. -fill value1,_value2,.. | [image] | 'formula' Fill selected images with values read from the specified value list, existing image or mathematical expression. Single quotes may be omitted in 'formula'. (eq. to '-f'). -index { [palette] | predefined_palette },0<=_dithering<=1,_map_palette={ 0 | 1 } Index selected vector-valued images by specified vector-valued palette. 'predefined_palette' can be { 0=default | 1=HSV | 2=lines | 3=hot | 4=cool | 5=jet | 6=flag | 7=cube }. Default values : 'dithering=0' and 'map_palette=0'. -map [palette] | predefined_palette Map specified vector-valued palette to selected indexed scalar images. 'predefined_palette' can be { 0=default | 1=HSV | 2=lines | 3=hot | 4=cool | 5=jet | 6=flag | 7=cube }. -noise std_variation>=0[%],_noise_type Add random noise to selected images. 'noise_type' can be { 0=gaussian | 1=uniform | 2=salt&pepper | 3=poisson | 4=rice }. Default value : 'noise_type=0'. -normalize { value0[%] | [image0] },{ value1[%] | [image1] } | [image] Linearly normalize values of selected images in specified range. (eq. to '-n'). -rand { value0[%] | [image0] },{ value1[%] | [image1] } | [image] Fill selected images with random values uniformly distributed in the specified range. -round rounding_value>=0,_rounding_type | (no args) Round values of selected images. 'rounding_type' can be { -1=backward | 0=nearest | 1=forward }. Default value : 'rounding_type=0'. -set value,_x[%],_y[%],_z[%],_c[%] (*) Set pixel value in selected images, at specified coordinates. (eq. to '-='). If specified coordinates are outside the image bounds, no action is performed. Default values : 'x=y=z=c=0'. -threshold value[%],_soft | (no args) Threshold values of selected images. (eq. to '-t'). 'soft' can be { 0=hard-thresholding | 1=soft-thresholding }. (noargs) runs interactive mode (uses the instant window [0] if opened). Default value : 'soft=0'. ** Colors manipulation : -cmy2rgb Convert selected images from CMY to RGB colorbases. -cmyk2rgb Convert selected images from CMYK to RGB colorbases. -hsi2rgb Convert selected images from HSI to RGB colorbases. -hsl2rgb Convert selected images from HSL to RGB colorbases. -hsv2rgb Convert selected images from HSV to RGB colorbases. -lab2rgb Convert selected images from Lab to RGB colorbases. -rgb2cmy Convert selected images from RGB to CMY colorbases. -rgb2cmyk Convert selected images from RGB to CMYK colorbases. -rgb2hsi Convert selected images from RGB to HSI colorbases. -rgb2hsl Convert selected images from RGB to HSL colorbases. -rgb2hsv Convert selected images from RGB to HSV colorbases. -rgb2lab Convert selected images from RGB to Lab colorbases. -rgb2srgb Convert selected images from RGB to sRGB colorbases. -rgb2ycbcr Convert selected images from RGB to YCbCr colorbases. -rgb2yuv Convert selected images from RGB to YUV colorbases. -rgb2xyz Convert selected images from RGB to XYZ colorbases. -srgb2rgb Convert selected images from sRGB to RGB colorbases. -xyz2rgb Convert selected images from XYZ to RGB colorbases. -ycbcr2rgb Convert selected images from YCbCr to RGB colorbases. -yuv2rgb Convert selected images from YUV to RGB colorbases. ** Geometry manipulation : -append axis={ x | y | z | c },_alignment (*) Append selected images along specified axis. (eq. to '-a'). Usual 'alignment' values are { 0=left-justified | 0.5=centered | 1=right-justified }. Default value : 'alignment=0'. -autocrop value1,value2,.. (*) Autocrop selected images by specified vector-valued intensity. -channels { [image0] | c0[%] },_{ [image1] | c1[%] } (*) Keep only specified channels of selected images. Dirichlet boundary is used when specified channels are out of range. -columns { [image0] | x0[%] },_{ [image1] | x1[%] } (*) Keep only specified columns of selected images. Dirichlet boundary is used when specified columns are out of range. -crop x0[%],x1[%],_boundary | (*) x0[%],y0[%],x1[%],y1[%],_boundary | x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary | x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary | (noargs) Crop selected images with specified region coordinates. (eq. to '-z'). 'boundary' can be { 0=dirichlet | 1=neumann }. (noargs) runs interactive mode (uses the instant window [0] if opened). Default value : 'boundary=0'. -mirror { x | y | z }..{ x | y | z } (*) Mirror selected images along specified axes. -permute permutation_string (*) Permute selected image axes by specified permutation. 'permutation' is a combination of the character set {x|y|z|c}, e.g. 'xycz', 'cxyz', .. -resize [image],_interpolation,_boundary,_cx,_cy,_cz,_cc | (*) {[image_w] | width>0[%]},_{[image_h] | height>0[%]},_{[image_d] | depth>0[%]}, _{[image_s] | spectrum>0[%]},_interpolation,_boundary,_cx,_cy,_cz,_cc | (noargs) Resize selected images with specified geometry. (eq. to '-r'). 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. 'boundary' has different meanings, according to the chosen 'interpolation' mode : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. 'cx,cy,cz,cc' set the centering mode when 'interpolation=0' (must be in [0,1]). Their default values are '0'. (noargs) runs interactive mode (uses the instant window [0] if opened). Default values : 'interpolation=1', 'boundary=0' and 'cx=cy=cz=cc=0'. -resize2x (*) Resize selected images using the Scale2x algorithm. -resize3x (*) Resize selected images using the Scale3x algorithm. -rotate angle,_boundary,_interpolation,_cx[%],_cy[%],_zoom (*) Rotate selected images with specified angle (in deg.). 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. 'interpolation' can be { 0=none | 1=linear | 2=bicubic }. When rotation center ('cx','cy') is specified, the size of the image is preserved. Default values : 'boundary=0', 'interpolation=1', 'cx=cy=(undefined)' and 'zoom=1'. -rows { [image0] | y0[%] },_{ [image1] | y1[%] } (*) Keep only specified rows of selected images. Dirichlet boundary is used when specified rows are out of range. -shift vx[%],_vy[%],_vz[%],_vc[%],_boundary (*) Shift selected images by specified displacement vector. 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. Default value : 'boundary=0'. -slices { [image0] | z0[%] },_{ [image1] | z1[%] } (*) Keep only specified slices of selected images. Dirichlet boundary is used when specified slices are out of range. -sort _ordering={ + | - },_axis={ x | y | z | c } Sort pixel values of selected images. If 'axis' is specified, the sorting is done according to the data of the first column/row/slice/channel of selected images. Default values : 'ordering=+' and 'axis=(undefined)'. -split { x | y | z | c }..{ x | y | z | c },_nb_parts | (*) keep_splitting_values={ + | - },value1,value2,... Split selected images along specified axis, or sequence of scalar values. (eq. to '-s'). 'nb_parts' can be { 0=maximum split | >0=split in N parts | <0=split in parts of size -N }. 'boundary' can be { 0=dirichlet | 1=neumann }. Default value : 'nb_parts=0'. -unroll axis={ x | y | z | c } (*) Unroll selected images along specified axis. (eq. to '-y'). -warp [warping_field],_is_relative={ 0 | 1 },_interpolation={ 0 | 1 },_boundary,_nb_frames>0 Warp selected image with specified displacement field. 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. Default values : 'is_relative=0', 'interpolation=1', 'boundary=0' and 'nb_frames=1'. ** Filtering : -bilateral std_variation_s>0[%],std_variation_r>0 Blur selected images by anisotropic bilateral filtering. -blur std_variation>=0[%],_boundary Blur selected images by a quasi-gaussian recursive filter. (eq. to '-b'). 'boundary' can be { 0=dirichlet | 1=neumann }. Default value : 'boundary=1'. -convolve [mask],_boundary,_is_normalized={ 0 | 1 } Convolve selected images by specified mask. 'boundary' can be { 0=dirichlet | 1=neumann }. Default values : 'boundary=1' and 'is_normalized=0'. -correlate [mask],_boundary,_is_normalized={ 0 | 1 } Correlate selected images by specified mask. 'boundary' can be { 0=dirichlet | 1=neumann }. Default values : 'boundary=1' and 'is_normalized=0'. -denoise std_variation_s>=0,_std_variation_p>=0,_patch_size>=0,_lookup_size>=0,_smoothness, _fast_approx={ 0 | 1 } Denoise selected images by non-local patch averaging. Default values : 'std_variation_p=10', 'patch_size=5', 'lookup_size=6' and 'smoothness=1'. -deriche std_variation>=0[%],order={ 0 | 1 | 2 },axis={ x | y | z | c },_boundary Apply Deriche recursive filter with specified standard deviation, order, axis and border conditions on selected images. 'boundary' can be { 0=dirichlet | 1=neumann }. Default value : 'boundary=1'. -dilate size>=0 | size_x>=0,size_y>=0,size_z>=0 | [mask],_boundary,_is_normalized={ 0 | 1 } Dilate selected images by a rectangular or the specified structuring element. 'boundary' can be { 0=dirichlet | 1=neumann }. Default values : 'size_z=1', 'boundary=1' and 'is_normalized=0'. -eikonal nb_iterations>=0,_band_size>=0 Compute iterations of the eikonal equation (signed distance function) on selected images. When 'band_size==0', the algorithm performs on all image pixels. Default value : 'band_size=0'. -erode size>=0 | size_x>=0,size_y>=0,_size_z>=0 | [mask],_boundary,_is_normalized={ 0 | 1 } Erode selected images by a rectangular or the specified structuring element. 'boundary' can be { 0=dirichlet | 1=neumann }. Default values : 'size_z=1', 'boundary=1' and 'is_normalized=0'. -fft Compute the direct fourier transform (real and imaginary parts) of selected images. -gradient { x | y | z }..{ x | y | z },_scheme | (no args) Compute the gradient components (first derivatives) of selected images. (eq. to '-g'). 'scheme' can be { -1=backward | 0=centered | 1=forward | 2=sobel | 3=rotation-invariant (default) | 4=recursive }. (no args) compute all significant 2d/3d components. Default value : 'scheme=3'. -haar scale>0 Compute the direct haar multiscale wavelet transform of selected images. -hessian { xx | xy | xz | yy | yz | zz }..{ xx | xy | xz | yy | yz | zz } | (no args) Compute the hessian components (second derivatives) of selected images. (no args) compute all significant components. -ifft Compute the inverse fourier transform (real and imaginary parts) of selected images. -ihaar scale>0 Compute the inverse haar multiscale wavelet transform of selected images. -inpaint [mask] Inpaint selected images by specified mask. -median radius>=0 Apply median filter of specified radius on selected images. -sharpen amplitude>=0 | amplitude>=0,edge>=0,_alpha,_sigma Sharpen selected images by inverse diffusion or shock filters methods. 'edge' must be specified to enable shock-filter method. Default values : 'alpha=0' and 'sigma=0'. -smooth amplitude>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dl>0,_da>0,_precision>0, interpolation,_fast_approx={ 0 | 1 } | nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 | [tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={ 0 | 1 } | [tensor_field],_nb_iters>=0,_dt>0,0 Smooth selected images anisotropically using diffusion PDE's, with specified field of diffusion tensors. 'anisotropy' must be in [0,1]. 'interpolation' can be { 0=nearest | 1=linear | 2=runge-kutta }. Default values : 'sharpness=0.7', 'anisotropy=0.3', 'alpha=0.6', 'sigma=1.1', 'dl=0.8', 'da=30', 'precision=2', 'interpolation=0' and 'fast_approx=1'. -structuretensors _scheme Compute the structure tensor field of selected images. 'scheme' can be { 0=centered | 1=forward-backward1 | 2=forward-backward2 }. Default value : 'scheme=2'. -watershed [priority_image],_fill_lines={ 0 | 1 } Compute the watershed transform of selected images. Default value : 'fill_lines=1'. ** Features extraction : -displacement [source_image],_smoothness,_precision>=0,_nb_scales>=0,iteration_max>=0, is_backward={ 0 | 1 } Estimate displacement field between specified source and selected images. If 'smoothness>=0', regularization type is set to isotropic, else to anisotropic. If 'nbscales==0', the number of needed scales is estimated from the image size. Default values : 'smoothness=0.1', 'precision=5', 'nb_scales=0', 'iteration_max=10000' and 'is_backward=1'. -distance isovalue[%],_metric | isovalue[%],[custom_metric] | x[%]>=0,y[%]>=0,z[%]>=0 Compute the unsigned distance function to specified isovalue or coordinates. 'metric' can be { 0=chebyshev | 1=manhattan | 2=euclidean | 3=squared-euclidean }. A custom metric for chamfer distances can be specified as a 2d or 3d image. If arguments 'x','y','z' are provided, the image stands for a potential map used to determine the distance map to specified point (x,y,z). Default value : 'metric=2'. -histogram nb_levels>0[%],_value0[%],_value1[%] Compute the histogram of selected images. If value range is set, the histogram is estimated only for pixels in the specified value range. Argument 'value1' must be specified if 'value0' is set. Default values : 'value0=0%' and 'value1=100%'. -label tolerance>=0,is_high_connectivity={ 0 | 1 } Label connected components in selected images. Default values : 'tolerance=0' and 'is_high_connectivity=0'. -mse Compute MSE (Mean-Squared Error) matrix between selected images. -psnr _max_value Compute PSNR (Peak Signal-to-Noise Ratio) matrix between selected images. Default value : 'max_value=255'. ** Image drawing : -axes x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,.. Draw xy-axes on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. To draw only one X-axis at row Y, set both 'y0' and 'y1' to Y. To draw only one Y-axis at column X, set both 'x0' and 'x1' to X. Default values : 'font_height=13', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -ellipse x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,.. Draw specified colored ellipse on selected images. A radius of '100%' stands for 'sqrt(width*height)'. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. If a pattern is specified, the ellipse is drawn outlined instead of filled. Default values : 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -flood x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={ 0 | 1 },_opacity,_color1,.. Flood-fill selected images using specified value and tolerance. Default values : 'y=z=0', 'tolerance=0', 'is_high_connectivity=0', 'opacity=1' and 'color1=0'. -graph [function_image],_plot_type,_vertex_type,_ymin,_ymax,_opacity,_pattern,_color1,.. | 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_opacity,_pattern,_color1,.. Draw specified function graph on selected images. 'plot_type' can be { 0=none | 1=lines | 2=splines | 3=bar }. 'vertex_type' can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. Default values : 'plot_type=1', 'vertex_type=1', 'ymin=ymax=0 (auto)', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -grid size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,.. Draw xy-grid on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. Default values : 'offset_x=offset_y=0', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -image [sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask Draw specified sprite image on selected images. (eq. to '-j'). Default values : 'x=y=z=c=0', 'opacity=1', 'sprite_mask=(undefined)' and 'max_opacity_mask=1'. -line x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,..' Draw specified colored line on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. Default values : 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -mandelbrot z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={ 0 | 1 },_c0r,_c0i,_opacity Draw mandelbrot/julia fractal on selected images. Default values : 'iteration_max=100', 'is_julia=0', 'c0r=c0i=0' and 'opacity=1'. -object3d [object3d],_x[%],_y[%],_z,_opacity,_is_zbuffer={ 0 | 1 } Draw specified 3d object on selected images. Default values : 'x=y=z=0', 'opacity=1' and 'is_zbuffer=1'. -plasma alpha,_beta,_scale>=0 Draw a random colored plasma on selected images. Default values : 'beta=1' and 'scale=8'. -point x[%],y[%],_z[%],_opacity,_color1,.. Set specified colored pixel on selected images. Default values : 'z=0', 'opacity=1' and 'color1=0'. -polygon N,x1[%],y1[%],..,xN[%],yN[%],_opacity,_pattern,_color1,.. Draw specified colored N-vertices polygon on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. If a pattern is specified, the polygon is drawn outlined instead of filled. Default values : 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -quiver [function_image],_sampling>0,_factor,_is_arrow={ 0 | 1 },_opacity,_pattern,_color1,.. Draw specified 2d vector/orientation field on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. Default values : 'sampling=25', 'factor=-20', 'is_arrow=1', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -spline x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_opacity,_pattern,_color1,.. Draw specified colored spline curve on selected images. 'pattern' is an hexadecimal number starting with '0x' which can be omitted even if a color is specified. Default values : 'opacity=1', 'pattern=(undefined)' and 'color1=0'. -text text,_x[%],_y[%],_font_height>=0,_opacity,_color1,.. Draw specified colored text string on selected images. Exact pre-defined sizes are '13','24','32' and '57'. Any other size is interpolated. Specifying an empty target image resizes it to new dimensions such that the image contains the entire text string. Default values : 'opacity=1' and 'color1=0'. ** Matrix computation : -dijkstra starting_node>=0,ending_node>=0 Compute minimal distances and pathes from specified adjacency matrices by the Dijkstra algorithm. -eigen Compute the eigenvalues and eigenvectors of selected symmetric matrices or matrix fields. If one selected image has 3 or 6 channels, it is regarded as a field of 2x2 or 3x3 symmetric matrices, whose eigen elements are computed at each point of the field. -invert Compute the inverse of the selected matrices. -solve [image] Solve linear system AX = B for selected B-vectors and specified A-matrix. If the system is under- or over-determined, least square solution is returned. -svd Compute SVD decomposition of selected matrices. -trisolve [image] Solve tridiagonal system AX = B for selected B-vectors and specified tridiagonal A-matrix. Tridiagonal matrix must be stored as a 3 column vector, where 2nd column contains the diagonal coefficients, while 1st and 3rd columns contain the left and right coefficients. ** 3d rendering : -add3d tx,_ty,_tz | [object3d] | (noargs) Shift selected 3d objects with specified displacement vector, or merge them with specified 3d object, or merge all selected 3d objects together. (eq. to '-+3d'). Default values : 'ty=tz=0'. -background3d R,_G,_B | [image] | (no args) Define background from specified color or existing image for interactive 3d viewer. (eq. to '-b3d'). (no args) resets the background to default. -color3d R,_G,_B,_opacity Set color and opacity of selected 3d objects. (eq. to '-col3d'). Default value : 'opacity=(undefined)'. -div3d factor | factor_x,factor_y,_factor_z Scale selected 3d objects isotropically or anisotropically, with the inverse of specified factors. (eq. to '-/3d'). Default value : 'factor_z=0'. -double3d is_doubled={ 0 | 1 } Enable/disable double-sided mode for 3d rendering. (eq. to '-db3d'). -elevation3d (no args) | z-factor | [elevation] | 'formula' Build 3d elevation of selected images, with a specified elevation map. When invoked with (no args) or 'z-factor', the elevation map is computed as the pointwise L2 norm of the pixel values. Otherwise, the elevation map is taken from the specified image or formula. -focale3d focale Set 3d focale. (eq. to '-f3d'). Set 'focale' to 0 to enable parallel projection (instead of perspective). Set negative 'focale' will disable 3d sprite zooming. -isoline3d isovalue[%] | 'formula',value,_x0,_y0,_x1,_y1,_size_x>0[%],_size_y>0[%] Extract 3d isolines with specified value from selected images or from specified formula. Default values : 'x0=y0=-3', 'x1=y1=3' and 'size_x=size_y=256'. -isosurface3d isovalue[%] | 'formula',value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x>0[%],_size_y>0[%],_size_z>0[%] Extract 3d isosurfaces with specified value from selected images or from specified formula. Default values : 'x0=y0=z0=-3', 'x1=y1=z1=3' and 'size_x=size_y=size_z=32'. -light3d position_x,position_y,position_z | [texture] | (no args) Set the light coordinates or the light texture for 3d rendering. (eq. to '-l3d'). (noargs) resets the 3d light to default. -mode3d mode Set static 3d rendering mode. (eq. to '-m3d'). 'mode' can be { -1=bounding-box | 0=pointwise | 1=linear | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=phong-shaded }. Bounding-box mode ('mode==1') is active only for the interactive 3d viewer. -moded3d mode Set dynamic 3d rendering mode for interactive 3d viewer. (eq. to '-md3d'). 'mode' can be { -1=bounding-box | 0=pointwise | 1=linear | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=phong-shaded }. -mul3d factor | factor_x,factor_y,_factor_z Scale selected 3d objects isotropically or anisotropically, with specified factors. (eq. to '-*3d'). Default value : 'factor_z=0'. -opacity3d opacity Set opacity of selected 3d objects. (eq. to '-o3d'). -pose3d value1,..,value16 | (noargs) Set the coefficients of the 3d pose matrix. (noargs) resets the 3d pose matrix to default. -primitives3d mode Convert primitives of selected 3d objects. (eq. to '-p3d'). 'mode' can be { 0=points | 1=segments | 2=non-textured }. -reverse3d Reverse primitive orientations of selected 3d objects. (eq. to '-rv3d'). -rotate3d u,v,w,angle Rotate selected 3d objects around specified axis with specified angle (in deg.). (eq. to '-r3d'). -specl3d value>=0 Set amount of 3d specular light. (eq. to '-sl3d'). -specs3d value>=0 Set shininess of 3d specular light. (eq. to '-ss3d'). -sphere3d radius,_nb_recursions>=0 Input 3d sphere at (0,0,0), with specified geometry. Default value : 'nb_recursions=3'. -split3d Split selected 3d objects into 6 feature vectors : { header, sizes, vertices, primitives, colors, opacities }. (eq. to '-s3d'). To recreate the 3d object, append these 6 images along the y-axis. -streamline3d x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 } | 'formula',x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 } Extract 3d streamlines from selected vector fields or from specified formula. 'interpolation' can be { 0=nearest integer | 1=1st-order | 2=2nd-order | 3=4th-order }. Default values : 'dl=0.1', 'interpolation=2', 'is_backward=0' and 'is_oriented=0'. -sub3d tx,_ty,_tz Shift selected 3d objects with the opposite of specified displacement vector. (eq. to '--3d'). Default values : 'ty=tz=0'. -texturize3d [ind_texture],_[ind_coords] Texturize selected 3d objects with specified texture and coordinates. (eq. to '-t3d'). When '[ind_coords]' is omitted, default XY texture projection is performed. Default value : 'ind_coords=(undefined)'. ** Program controls : -check expression (*) Evaluate specified expression and display an error message if evaluated to false. If 'expression' is not evaluable, it is regarded as a filename and checked if it exists. -continue (*) Continue to next iteration of current 'repeat..done', 'do..while' or 'local..endlocal' block. -break (*) Break current 'repeat..done', 'do..while' or 'local..endlocal' block. -do (*) Start a 'do..while' block. -done (*) End a 'repeat..done' block, and go to associated '-repeat' position, if iterations remain. -elif boolean | (*) filename Start a 'elif..[else]..endif' block if previous '-if' was not verified and test if specified boolean is true, or if specified filename exists. 'boolean' can be a float number standing for { 0=false | other=true }. -else (*) Execute following commands if previous '-if' or '-elif' conditions failed. -endif (*) End a 'if..[elif]..[else]..endif' block. -endlocal (*) End a 'local..endlocal' block. (eq. to '-endl'). -error message (*) Print specified error message on the standard output and exit interpreter, except if error is caught by a '-onfail' command. Command subset (if any) stands for displayed scope indices instead of image indices. -exec command (*) Execute external command using a system call. The status value is then set to the error code returned by the system call. (eq. to '-x'). -if boolean | (*) filename Start a 'if..[elif]..[else]..endif' block and test if specified boolean is true, or if specified filename exists. 'boolean' can be a float number standing for { 0=false | other=true }. -local (*) Start a 'local..[onfail]..endlocal' block, with selected images. (eq. to '-l'). -onfail (*) Execute following commands when an error is encountered in the body of the 'local..endlocal' block. The status value is set with the corresponding error message. -progress 0<=value<=100 | (*) -1 Set the progress indice of the current processing pipeline. This command is useful only when G'MIC is used by an embedding application. -quit (*) Quit interpreter. (eq. to '-q'). -repeat nb_iterations (*) Start iterations of a 'repeat..done' block. -return (*) Return from current custom command. -skip item (*) Do nothing but skip specified item. -status item | (*) $variable Set current status value to the specified item or from the value of the specified environment variable. (eq. to '-u'). -while boolean | (*) filename End a 'do..while' block and go back to associated '-do' if specified boolean is true or if specified filename exists. 'boolean' can be a float number standing for { 0=false | other=true }. ** Native commands shortcuts : -h eq. to '-help'. (*) -m eq. to '-command'. (*) -d eq. to '-display'. -d3d eq. to '-display3d'. -e eq. to '-echo'. (*) -i eq. to '-input'. (*) -o eq. to '-output'. (*) -p eq. to '-print'. (*) -sh eq. to '-shared'. (*) -v eq. to '-verbose'. (*) -w eq. to '-window'. -k eq. to '-keep'. (*) -mv eq. to '-move'. (*) -nm eq. to '-name'. (*) -rm eq. to '-remove'. (*) -rv eq. to '-reverse'. (*) -+ eq. to '-add'. -<< eq. to '-bsl'. ->> eq. to '-bsr'. -/ eq. to '-div'. -== eq. to '-eq'. ->= eq. to '-ge'. -> eq. to '-gt'. -<= eq. to '-le'. -< eq. to '-lt'. -// eq. to '-mdiv'. -% eq. to '-mod'. -** eq. to '-mmul'. -* eq. to '-mul'. -!= eq. to '-neq'. -^ eq. to '-pow'. -- eq. to '-sub'. -c eq. to '-cut'. -f eq. to '-fill'. -n eq. to '-normalize'. -= eq. to '-set'. -t eq. to '-threshold'. -a eq. to '-append'. (*) -z eq. to '-crop'. (*) -r eq. to '-resize'. (*) -s eq. to '-split'. (*) -y eq. to '-unroll'. (*) -b eq. to '-blur'. -g eq. to '-gradient'. -j eq. to '-image'. -+3d eq. to '-add3d'. -b3d eq. to '-background3d'. -col3d eq. to '-color3d'. -/3d eq. to '-div3d'. -db3d eq. to '-double3d'. -f3d eq. to '-focale3d'. -l3d eq. to '-light3d'. -m3d eq. to '-mode3d'. -md3d eq. to '-moded3d'. -*3d eq. to '-mul3d'. -o3d eq. to '-opacity3d'. -p3d eq. to '-primitives3d'. -rv3d eq. to '-reverse3d'. -r3d eq. to '-rotate3d'. -sl3d eq. to '-specl3d'. -ss3d eq. to '-specs3d'. -s3d eq. to '-split3d'. --3d eq. to '-sub3d'. -t3d eq. to '-texturize3d'. -endl eq. to '-endlocal'. (*) -q eq. to '-quit'. (*) -l eq. to '-local'. (*) -u eq. to '-status'. (*) -x eq. to '-exec'. (*) List of default custom commands ------------------------------- The default custom G'MIC commands are listed below, classified by themes. Those commands are defined in the default custom commands file, located at 'http://gmic.sourceforge.net/gmic_def.xxxx', where 'xxxx' are the 4 digits of the current G'MIC version number. These custom commands are recognized by default by the G'MIC interpreter. ** Inputs / outputs : -apply_camera _command,_camera_index>=-1,_skip_frames>=0,_output_filename Apply specified command on live camera stream, and display it on display window [0]. Default values : 'command= -d0 eq. to '-display0'. -display0 Display selected images without value normalization. (eq. to '-d0'). -da eq. to '-display_array'. -display_array _width>0,_height>0 Display images in interactive windows where pixel neighborhoods can be explored. Default values : 'width=13' and 'height=width'. -dfft eq. to '-display_fft'. -display_fft Display fourier transform of selected images, with centered log-module and argument. (eq. to '-dfft'). -dg eq. to '-display_graph'. -display_graph _width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax Render graph plot from selected image data. Default values : 'width=640', 'height=480', 'plot_type=1', 'vertex_type=1' and 'xmin=xmax=ymin=ymax=0'. -dh eq. to '-display_histogram'. -display_histogram _width>0,_height>0,_clusters>0,_min_value[%],_max_value[%],_show_axes={ 0 | 1 } Render a channel-by-channel histogram. (eq. to '-dh'). Default values : 'width=512', 'height=300', 'clusters=256', 'min_value=0%', 'max_value=100%' and 'show_axes=1'. -dp eq. to '-display_polar'. -display_polar _width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end Render polar curve from selected image data. 'outline_type' can be { r<0=dots with radius -r | 0=no outline | r>0=lines+dots with radius r }. 'fill_color' can be { -1=no fill | R,G,B=fill with specified color }. Default values : 'width=500', 'height=width', 'outline_type=1', 'fill_R=fill_G=fill_B=200', 'theta_start=0' and 'theta_end=360'. -drgba eq. to '-display_rgba'. -display_rgba Render selected RGBA images over a checkerboard background. (eq. to '-drgba'). -dt eq. to '-display_tensors'. -display_tensors _size_factor>0,_ellipse_factor>=0,_colored_mode={ 0 | 1 } Render selected mask field of 2x2 tensors with ellipses. (eq. to '-dt'). Default values : 'size_factor=16', 'ellipse_factor=0.92', 'color_mode=1'. -dw eq. to '-display_warp'. -display_warp _cell_size>0 Render selected 2d warping fields. (eq. to '-dw'). Default value : 'cell_size=15'. -function1d 0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn Generate continuous 1d function from specified list of keypoints (xk,yk) in range [0,max(xk)] (xk are positive integers). Default values : 'smoothness=1' and 'x0=y0=0'. -gmicky Load a new image of the G'MIC mascot 'Gmicky'. -gmicky_wilber Load a new image of the G'MIC mascot 'Gmicky' together with GIMP mascot 'Wilber'. -img2text _line_separator Return text contained in a multi-line image. Default value : 'line_separator= '. -on eq. to '-outputn'. -outputn filename Output selected images as automatically numbered filenames in repeat..done loops. (eq. to '-on'). -op eq. to '-outputp'. -outputp prefix Output selected images as prefixed versions of their original filenames. (eq. to '-op'). Default value : 'prefix=_'. -ow eq. to '-outputw'. -outputw Output selected images by overwritting their original location. (eq. to '-ow'). -rainbow_lut Generate a 256-entries RGB colormap of rainbow colors. -roddy Load a new image of the G'MIC Rodilius mascot 'Roddy'. -rm_duplicates Remove duplicates images in the selected images list. -sort_list _ordering={ + | - },_x,_y,_z,_c Sort list of selected images according to their value located at (x,y,z,c). Default values : 'ordering=+', 'x=0', 'y=0', 'z=0' and 'c=0'. -testimage2d _width>0,_height>0,_spectrum>0 Generate a synthetic image. Default values : 'width=512', 'height=width' and 'spectrum=3'. -text2img text,_line_separator Generate a new 2d image where values are ASCII characters of specified input text. Default value : 'line_separator= '. -up eq. to '-update'. -update Update commands from the latest definition file on the G'MIC server. This requires an active Internet connection and an access to the external tools 'curl' or 'wget'. (eq. to '-up'). ** Values manipulation : -apply_curve 0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN Apply curve transformation to image values. Default values : 'smoothness=1', 'x0=0', 'y0=100'. -apply_gamma gamma>=0 Apply gamma correction to selected images. -balance_gamma _ref_color1,... Apply color balance transformation on selected image, with respect to specified reference color. Default values : 'ref_color1=128'. -complex2polar Compute complex to polar transforms of selected images. -cumul Compute the cumulative function of specified image data. -discard value,_remove_if_not_found = { 0 | 1 }. Remove specified value in selected images and return results as single-column vector. Default value : 'remove_if_not_found'=0. -eigen2tensor Recompose selected pairs of eigenvalues/eigenvectors as 2x2 or 3x3 tensor fields. -float2int8 Convert selected float-valued images to 8bits integer representations. -int82float Convert selected 8bits integer representations to float-valued images. -mix_channels (a00,...,aMN) Apply specified matrix to channels of selected images. -negative Compute negative of selected images. -norm Compute the pointwise euclidean norm of vector-valued pixels in selected images. -normalize_sum Normalize selected images with a unitary sum. -orientation Compute the pointwise orientation of vector-valued pixels in selected images. -otsu _nb_levels>0 Hard-threshold image using Otsu's method. Default value : 'nb_levels=256'. -polar2complex Compute polar to complex transforms of selected images. -quantize nb_levels>=1,_preserve_value_range={ 0 | 1 } Uniformly quantize selected images. Default value : 'preserve_value_range=1'. -replace value_src,value_dest Replace pixel values in selected images. -replace_inf _expression Replace all infinite values in selected images by specified expression. -replace_nan _expression Replace all NaN values in selected images by specified expression. -replace_seq Search and replace a sequence of values in selected images. -roundify gamma>=0 Apply roundify transformation on float-valued data, with specified gamma. Default value : 'gamma=0'. -t2 eq. to '-threshold2'. -threshold2 min[%],max[%] Threshold selected images between the two given values. (eq. to '-t2'). -vector2tensor Convert selected vector fields to corresponding diffusion tensor fields. ** Colors manipulation : -apply_channels Apply specified command on chosen normalized channels of each selected images. Default value : 'normalize=0'. -autoindex nb_colors>0,_dithering>=0,_method={ 0=median-cut | 1=k-means } Index selected vector-valued images by adapted colormaps. Default values : 'dithering=0' and 'method=0'. -bayer2rgb _GM_smoothness,_RB_smoothness1,_RB_smoothness2 Transform selected RGB-Bayer sampled images to color images. Default values : 'GM_smoothness=RB_smoothness=1' and 'RB_smoothness2=0.5'. -colormap nb_colors>0,_method={ 0=median-cut | 1=k-means } Estimate best-fitting colormap with 'nb_colors' entries, to index selected images. Default value : 'method=0'. -direction2rgb Compute RGB representation of selected 2d direction fields. -ditheredbw Create dithered B&W version of selected images. -fc eq. to '-fill_color'. -fill_color col1,...,colN Fill selected images with specified color. (eq. to '-fc'). -gradient2rgb _orientation={ 0 | 1 } Compute RGB representation of 2d gradient of selected images. Default value : 'orientation=0'. -hsi82rgb Convert selected images from HSI8 to RGB color bases. -hsl82rgb Convert selected images from HSL8 to RGB color bases. -hsv82rgb Convert selected images from HSV8 to RGB color bases. -lab2lch Convert selected images from Lab to Lch color bases. -lab82rgb Convert selected images from Lab8 to RGB color bases. -lch2lab Convert selected images from Lch to Lab color bases. -lch2rgb Convert selected images from Lch to RGB color bases. -lch82rgb Convert selected images from Lch8 to RGB color bases. -luminance Compute luminance of selected images. -mix_rgb a11,a12,a13,a21,a22,a23,a31,a32,a33 Apply 3x3 specified matrix to RGB colors of selected images. Default values : 'a11=1', 'a12=a13=a21=0', 'a22=1', 'a23=a31=a32=0' and 'a33=1'. -remove_opacity Remove opacity channel of selected images. -replace_color tolerance[%]>=0,_smoothness[%]>=0,src1,...,srcN,dest1,...,destN Replace pixels from/to specified colors in selected images. -rgb2bayer _start_pattern=0,_color=0 Transform selected color images to RGB-Bayer sampled images. Default values : 'start_pattern=0' and 'color=0'. -rgb2hsi8 Convert selected images from RGB to HSI8 color bases. -rgb2hsl8 Convert selected images from RGB to HSL8 color bases. -rgb2hsv8 Convert selected images from RGB to HSV8 color bases. -rgb2lab8 Convert selected images from RGB to Lab8 color bases. -rgb2lch Convert selected images from RGB to Lch color bases. -rgb2lch8 Convert selected images from RGB to Lch8 color bases. -rgb2xyz8 Convert selected images from RGB to XYZ8 color bases. -rgb2yuv8 Convert selected images from RGB to YUV8 color bases. -select_color tolerance[%]>=0,col1,..,colN Select pixels with specified color in selected images. -sepia Apply sepia tones effect on selected images. -solarize Solarize selected images. -split_opacity Split color and opacity parts of selected images. -to_a Force selected images to have an alpha channel. -to_colormode mode={ 0=adaptive | 1=G | 2=GA | 3=RGB | 4=RGBA } Force selected images to be in a given color mode. Default value : 'mode=0'. -to_gray Force selected images to be in GRAY mode. -to_graya Force selected images to be in GRAYA mode. -to_pseudogray Convert selected (float-valued) scalar images to (int-valued) pseudo-gray color images. The pseudo-gray technique has been introduced by Rich Franzen [http://r0k.us/graphics/pseudoGrey.html]. -to_rgb Force selected images to be in RGB mode. -to_rgba Force selected images to be in RGBA mode. -transfer_colors _transfer_brightness={ 0 | 1 } Transfer colors of the first selected image to the other ones. Default value : 'transfer_brightness=0'. -xyz82rgb Convert selected images from XYZ8 to RGB color bases. -yuv82rgb Convert selected images from YUV8 to RGB color bases. ** Geometry manipulation : -append_tiles M>=0,_N>=0 Append MxN selected tiles as a new image. If argument 'M' is set to '0', horizontal auto-mode is used. If argument 'N' is set to '0', vertical auto-mode is used. Default values : 'M=0' and 'N=1'. -diagonal Transform selected vectors as diagonal matrices. -elevate _depth,_is_plain,_is_colored Elevate selected 2d images into 3d volumes. Default values : 'depth=64', 'is_plain=1' and 'is_colored=1'. -expand_x size_x>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Expand selected images along the X-axis. Default value : 'border=1'. -expand_xy size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Expand selected images along the XY-axes. Default value : 'border=1'. -expand_xyz size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Expand selected images along the XYZ-axes. Default value : 'border=1'. -expand_y size_y>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Expand selected images along the Y-axis. Default value : 'border=1'. -expand_z size_z>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Expand selected images along the Z-axis. Default value : 'border=1'. -rr2d eq. to '-resize_ratio2d'. -resize_ratio2d width>0,height>0,_mode={ 0=inside | 1=outside | 2=padded },0=<_interpolation<=6 Resize selected images while preserving their aspect ratio. (eq. to '-rr2d'). Default values : 'mode=0' and 'interpolation=6'. -r2dx eq. to '-resize2dx'. -resize2dx width>0,_interpolation={0,1,2,3,4,5,6} Resize selected images along the X-axis, preserving 2d ratio. (eq. to '-r2dx'). Default value : 'interpolation=2'. -r2dy eq. to '-resize2dy'. -resize2dy height>0,_interpolation={0,1,2,3,4,5,6} Resize selected images along the Y-axis, preserving 2d ratio. (eq. to '-r2dy'). Default value : 'interpolation=2'. -r3dx eq. to '-resize3dx'. -resize3dx width>0,_interpolation={0,1,2,3,4,5,6} Resize selected images along the X-axis, preserving 3d ratio. (eq. to '-r3dx'). Default value : 'interpolation=2'. -r3dy eq. to '-resize3dy'. -resize3dy height>0,_interpolation={0,1,2,3,4,5,6} Resize selected images along the Y-axis, preserving 3d ratio. (eq. to '-r3dy'). Default value : 'interpolation=2'. -r3dz eq. to '-resize3dz'. -resize3dz depth>0,_interpolation={0,1,2,3,4,5,6} Resize selected images along the Z-axis, preserving 3d ratio. (eq. to '-r3dz'). Default value : 'interpolation=2'. -rotate_tileable angle,_max_size_factor>=0 Rotate selected images by specified angle and make them tileable. If resulting size of an image is too big, the image is replaced by a 1x1 image. Default values : 'max_size_factor=8'. -shrink_x size_x>=0 Shrink selected images along the X-axis. -shrink_xy size>=0 Shrink selected images along the XY-axes. -shrink_y size_y>=0 Shrink selected images along the Y-axis. -shrink_z size_z>=0 Shrink selected images along the Z-axis. -split_tiles M!=0,_N!=0,_is_homogeneous={ 0 | 1 } Split selected images as a MxN array of tiles. Default values : 'N=M' and 'is_homogeneous=0'. -transpose Transpose selected matrices. -upscale_smart width,_height,_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0 Upscale selected images with an edge-preserving algorithm. Default values : 'height=100%', 'depth=100%', 'smoothness=2', 'anisotropy=0.4' and 'sharpening=10'. ** Filtering : -bandpass _min_freq[%],_max_freq[%] Apply bandpass filter to selected images. Default values : 'min_freq=0' and 'max_freq=20%'. -blur_angular amplitude[%],_cx,_cy Apply angular blur on selected images. Default values : 'cx=cy=0.5'. -blur_linear amplitude1[%],_amplitude2[%],_angle,_boundary={ 0=dirichlet | 1=neumann } Apply linear blur on selected images, with specified angle and amplitudes. Default values : 'amplitude2=0', 'angle=0' and 'boundary=1'. -blur_radial amplitude[%],_cx,_cy Apply radial blur on selected images. Default values : 'cx=cy=0.5'. -blur_x amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } Blur selected images along the X-axis. Default value : 'boundary=1'. -blur_xy amplitude_x[%],amplitude_y[%],_boundary={ 0=dirichlet | 1=neumann } Blur selected images along the X and Y axes. Default value : 'boundary=1'. -blur_xyz amplitude_x[%],amplitude_y[%],amplitude_z,_boundary={ 0=dirichlet | 1=neumann } Blur selected images along the X, Y and Z axes. Default value : 'boundary=1'. -blur_y amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } Blur selected images along the Y-axis. Default value : 'boundary=1'. -blur_z amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } Blur selected images along the Z-axis. Default value : 'boundary=1'. -compose_freq Compose selected low and high frequency parts into new images. -convolve_fft Convolve selected images two-by-two through fourier transforms. -cross_correlation Compute cross-correlation using two-by-two selected images. -curvature Compute isophote curvatures on selected images. -deinterlace _method={ 0 | 1 } Deinterlace selected images ('method' can be { 0=standard or 1=motion-compensated }). Default value : 'method=0'. -deconvolve_fft Deconvolve selected images two-by-two through fourier transforms. -dilate_circ _size>=0,_boundary,_is_normalized={ 0 | 1 } Apply circular dilation of selected image by specified size. Default values : 'boundary=1' and 'is_normalized=0'. -dilate_oct _size>=0,_boundary,_is_normalized={ 0 | 1 } Apply octagonal dilation of selected image by specified size. Default values : 'boundary=1' and 'is_normalized=0'. -divergence Compute divergence of selected vector fields. -dog _sigma1>=0[%],_sigma2>=0[%] Compute difference of gaussian on selected images. Default values : 'sigma1=2%' and 'sigma2=3%'. -edges _threshold[%]>=0 Estimate contours of selected images. Default value : 'edges=15%' -diffusiontensors _sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={ 0 | 1 } Compute the diffusion tensors of selected images for edge-preserving smoothing algorithms. Default values : 'sharpness=0.7', 'anisotropy=0.3', 'alpha=0.6', 'sigma=1.1' and 'is_sqrt=0'. -erode_circ _size>=0,_boundary,_is_normalized={ 0 | 1 } Apply circular erosion of selected images by specified size. Default values : 'boundary=1' and 'is_normalized=0'. -erode_oct _size>=0,_boundary,_is_normalized={ 0 | 1 } Apply octagonal erosion of selected images by specified size. Default values : 'boundary=1' and 'is_normalized=0'. -gradient_orientation _dimension={1,2,3} Compute N-D gradient orientation of selected images. Default value : 'dimension=3'. -gradient_norm Compute gradient norm of selected images. -heat_flow _nb_iter>=0,_dt,_keep_sequence={ 0 | 1 } Apply iterations of the heat flow on selected images. Default values : 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. -iee Compute gradient-orthogonal-directed 2nd derivative of image(s). -inn Compute gradient-directed 2nd derivative of image(s). -inpaint_flow _nb_iter1>=0,_nb_iter2>=0,_dt>=0,_alpha,_sigma Apply iteration of the inpainting flow on selected images. Default values : 'nb_iter1=4', 'nb_iter2=15', 'dt=15', 'alpha=1' and 'sigma=3'. -kuwahara size>0 Apply Kuwahara filter of specified size on selected images. -laplacian Compute Laplacian of selected images. -lic _amplitude>0,_channels>0 Generate LIC representation of vector field. Default values : 'amplitude=30' and 'channels=1'. -map_tones _threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0 Apply tone mapping operator on selected images, based on Poisson equation. Default values : 'threshold=0.1', 'gamma=0.8', 'smoothness=0.5' and 'nb_iter=30'. -map_tones_fast _radius[%]>=0,_power>=0 Apply fast tone mapping operator on selected images. Default values : 'radius=3%' and 'power=0.3'. -meancurvature_flow _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 } Apply iterations of the mean curvature flow on selected images. Default values : 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. -normalize_local _amplitude>=0,_radius>0,_n_smooth>=0[%],_a_smooth>=0[%],_is_cut={ 0 | 1 },_min=0,_max=255 Normalize selected images locally. Default values : 'amplitude=3', 'radius=16', 'n_smooth=4%', 'a_smooth=2%', 'is_cut=1', 'min=0' and 'max=255'. -normalized_cross_correlation Compute normalized cross-correlation using two-by-two selected images. -phase_correlation Estimate translation vector using two-by-two selected images. -pde_flow _nb_iter>=0,_dt,_velocity_command,_keep_sequence={ 0 | 1 } Apply iterations of a generic PDE flow on selected images. Default values : 'nb_iter=10', 'dt=30', 'velocity_command=laplacian' and 'keep_sequence=0'. -red_eye 0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1 Attenuate red-eye effect in selected images. Default values : 'threshold=75', 'smoothness=3.5' and 'attenuation=0.1'. -remove_hotpixels _mask_size>0, _threshold[%]>0 Remove hot pixels in selected images. Default values : 'mask_size=3' and 'threshold=10%'. -remove_pixels density>=0,_pixel_sum>=0 Remove (i.e. set to 0) specified density (in percent) of non-zero pixels to 0. Specified density is regarded against 'pixel_sum' except if it is set to '0' (in this case, 'pixel_sum' has default value 'width*height'). Default value : 'density=10', 'pixel_sum=0'. -richardson_lucy amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={ 0=Tikhonov | 1=meancurv. | 2=TV } Deconvolve image with the iterative Richardson-Lucy algorithm. Default values : 'nb_iter=10', 'dt=20', 'regul=0.7' and 'regul_type=1'. -split_freq smoothness>0[%] Split selected images into low and high frequency parts. -solidify Replace transparent regions of a RGBA image by morphologically interpolated color. -solidify_linear _sigma>=1,_dsigma>=1,0<=_precision<=1 Replace transparent regions of a RGBA image by linearly interpolated color. Default values : 'sigma=1.5', 'dsigma=1' and 'precision=0.5'. -tv_flow _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 } Apply iterations of the total variation flow on selected images. Default values : 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. -unsharp radius[%]>=0,_amount>=0,_threshold[%]>=0 Apply unsharp mask on selected images. Default values : 'amount=2' and 'threshold=0'. -unsharp_octave _nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0 Apply octave sharpening on selected images. Default values : 'nb_scales=4', 'radius=1', 'amount=2' and 'threshold=0'. -watermark_fourier text,_size>0 Add an textual watermark in the frequency domain of selected images. Default value : 'size=32'. ** Features extraction : -area tolerance>=0,is_high_connectivity={ 0 | 1 } Compute area of connected components in selected images. Default values : 'is_high_connectivity=0'. -area_fg tolerance>=0,is_high_connectivity={ 0 | 1 } Compute area of connected components for non-zero values in selected images. Similar to '-area' except that 0-valued pixels are not considered. Default values : 'is_high_connectivity=0'. -float2fft8 Convert selected float-valued images to 8bits fourier representations. -fft82float Convert selected 8bits fourier representations to float-valued images. -fftpolar Compute fourier transform of selected images, as centered magnitude/phase images. -histogram_cumul _nb_levels>0,_is_normalized={ 0 | 1 },_val0[%],_val1[%] Compute cumulative histogram of selected images. Default values : 'nb_levels=256', 'is_normalized=0' and 'val0=val1=0'. -hough _width>0,_height>0,gradient_norm_voting={ 0 | 1 } Compute hough transform (theta,rho) of selected images. Default values : 'width=512', 'height=width' and 'gradient_norm_voting=1'. -ifftpolar Compute inverse fourier transform of selected images, from centered magnitude/phase images. -isophotes _nb_levels>0 Render isophotes of selected images on a transparent background. Default value : 'nb_levels=64' -label_fg tolerance>=0,is_high_connectivity={ 0 | 1 } Label connected components for non-zero values (foreground) in selected images. Similar to '-label' except that 0-valued pixels are not labeled. Default value : 'is_high_connectivity=0'. -max_patch _patch_size>=1 Return locations of maximal values in local patch-based neighborhood of given size for selected images. Default value : 'patch_size=16'. -min_patch _patch_size>=1 Return locations of minimal values in local patch-based neighborhood of given size for selected images. Default value : 'patch_size=16'. -minimal_path x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0 Compute minimal path between two points on selected potential maps. -plot2value Retrieve values from selected 2d graph plots. -pointcloud _type = { -X=-X-opacity | 0=binary | 1=cumulative | 2=label } Convert a Nx1, Nx2, Nx3 or NxM image as a point cloud in a 1d/2d or 3d binary image. If 'M'>3, the 3-to-M lines sets the (M-3)-dimensional color at each point. Default value : 'type=0'. -segment_watershed _threshold>=0,_keep_watershed={ 0 | 1 } Apply watershed segmentation on selected images. Default values : 'threshold=2' and 'keep_watershed=1'. -skeleton _smoothness[%]>=0 Compute skeleton of binary shapes using distance transform. Default value : 'smoothness=0'. -thinning Compute skeleton of binary shapes using morphological thinning (This is a quite slow iterative proces) -tones N>0 Get N tones masks from selected images. -topographic_map _nb_levels>0,_smoothness Render selected images as topographic maps. Default values : 'nb_levels=16' and 'smoothness=2'. ** Image drawing : -ball _R,_G,_B Draw a colored RGBA ball sprite on selected images. Default values : 'R=255', 'G=R' and 'B=R'. -chessboard size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,..,_color2,.. Draw chessboard on selected images. Default values : 'size2=size1', 'offset1=offset2=0', 'angle=0', 'opacity=1', 'color1=0' and 'color2=255'. -gaussian _sigma1[%],_sigma2[%],_angle Draw a centered gaussian on selected images, with specified standard deviations and orientation. Default values : 'sigma1=3', 'sigma2=sigma1' and 'angle=0'. -marble _image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0 Generate a marble like pattern. Default values : 'image_weight=0.2', 'pattern_weight=0.1', 'angle=45', 'amplitude=0', 'sharpness=0.4', 'anisotropy=0.8', 'alpha=0.6', 'sigma=1.1' and 'cut_low=cut_high=0'. -maze _width>0,_height>0,_cell_size>0 Generate maze with specified size. -maze_mask _cellsize>0 Generate maze according to size and shape of selected mask images. Mask may contain disconnected shapes. -piechart label_height>=0,label_R,label_G,label_B, Draw pie chart on selected (RGB) images. -polka_dots diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,... Draw dots pattern on selected images. Default values : 'density=20', 'offset1=offset2=50', 'angle=0', 'aliasing=10', 'shading=1', 'opacity=1' and 'color=255'. -rorschach 'smoothness[%]>=0','mirroring={ 0=none | 1=x | 2=y | 3=xy } Render rorschach-like inkblots on selected images. Default values : 'smoothness=5%' and 'mirroring=1'. -sierpinski recursion_level>=0 Draw Sierpinski triangle on selected images. Default value : 'recursion_level=7'. -snowflake _recursion>=0,_x0,_y0,_x1,_y1,_x2,_y2,_opacity,_col1,..._colN Draw a Koch snowflake on selected images. Default values : 'recursion=4', 'x0=20', 'y0=70', 'x1=80', 'y1=70', 'x2=50', 'y2=10', 'opacity=1' and 'col1=255'. -text_outline text,_x[%],_y[%],_font_height>0,_outline>=0,_opacity,_color1,.. Draw specified colored and outlined text string on selected images. Default values : 'x=y=2', 'font_height=13', 'outline=2', 'opacity=1' and 'color1=255'. -triangle_shade x0,y0,x1,y0,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,.... Draw triangle with interpolated colors on selected images. -truchet _scale>0,_radius>=0,_pattern_type={ 0=straight | 1=curved } Fill selected images with random truchet patterns. Default values : 'scale=32', 'radius=5' and 'pattern_type=1'. -turbulence _radius>0,_octaves={1,2,3...,12},_alpha>0,_difference={-10,10},_mode={0,1,2,3} Generate fractal noise or turbulence. Default values : 'radius=32', 'octaves=6', 'alpha=3', 'difference=0' and 'mode=0'. -yinyang Draw a yin-yang symbol on selected images. ** 3d rendering : -animate3d _width>0,_height>0,_dx,_dy,_dz,_zoom>=0,_filename Animate selected 3d objects in a window. -apply_camera3d pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z Apply 3d camera matrix to selected 3d objects. Default values : 'target_x=0', 'target_y=0', 'target_z=0', 'up_x=0', 'up_y=-1' and 'up_z=0'. -apply_pose3d p1,..,p12 Apply 3d pose matrix to selected 3d objects. -axes3d _size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z Input 3d axes with specified sizes along the x,y and z orientations. Default values : 'size_x=size_y=size_z=1', 'font_size=24', 'label_x=X', 'label_y=Y' and 'label_z=Z'. -box3d _size_x,_size_y,_size_z Input 3d box at (0,0,0), with specified geometry. Default values : 'size_x=1' and 'size_z=size_y=size_x'. -c3d eq. to '-center3d'. -center3d Center selected 3d objects at (0,0,0). (eq. to '-c3d'). -circle3d _x0,_y0,_z0,_radius>=0 Input 3d circle at specified coordinates. Default values : 'x0=y0=z0=0' and 'radius=1'. -circles3d _radius>=0 Convert specified 3d objects to sets of 3d circles with specified radius. -colorcube3d Input 3d color wireframe cube. -cone3d _radius,_height,_nb_subdivisions>0 Input 3d cone at (0,0,0), with specified geometry. Default value : 'radius=1','height=1' and 'nb_subdivisions=24'. -cup3d _resolution>0 Generate a new 3d cup object. -cylinder3d _radius,_height,_nb_subdivisions>0 Input 3d cylinder at (0,0,0), with specified geometry. Default value : 'radius=1','height=1' and 'nb_subdivisions=24'. -distribution3d Generate 3d color distribution of selected images. -empty3d Generate new empty 3d object. -extrude3d _depth>0,_resolution>0,_smoothness[%]>=0 Generated extruded 3d object from selected binary profiles. Default values : 'depth=16', 'resolution=1024' and 'smoothness=0.5%'. -gaussians3d _size>0,_opacity Convert selected 3d objects into set of 3d gaussian-shaped sprites. -gmic3d Generate a 3d G'MIC logo. -gyroid3d _resolution>0,_zoom Generate 3d gyroid at (0,0,0), with specified resolution. Default values : 'resolution=32' and 'zoom=5'. -histogram3d Generate 3d color histogram of selected images. -image6cube3d Generate 3d mapped cubes from selected sets of 6 selected images. -imagecube3d Generate 3d mapped cubes from selected images. -imageplane3d Generate 3d mapped planes from selected images. -imagepyramid3d Generate 3d mapped pyramides from selected images. -imagerubik3d _xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100 Generate 3d mapped rubik's cubes from selected images. Default values : 'xy_tiles=3', 'xy_shift=5' and 'z_shift=5'. -imagesphere3d _resolution1>=3,_resolution2>=3 Generate 3d mapped sphere from selected images. Default values : 'resolution1=32' and 'resolutions2=16'. -label_points3d _label_size>0,_opacity Add a numbered label to all vertices of selected 3d objects. Default values : 'label_size=13' and 'opacity=0.8'. -lathe3d _resolution>0,_smoothness[%]>=0,_max_angle>=0 Generate 3d object from selected binary XY-profiles. Default values : 'resolution=128', 'smoothness=0.5%' and 'max_angle=361'. -line3d x0,y0,z0,x1,y1,z1 Input 3d line at specified coordinates. -lissajous3d resolution>1,a,A,b,B,c,C Generate 3d lissajous curves (x(t)=sin(a*t+A*2*pi),y(t)=sin(b*t+B*2*pi),z(t)=sin(c*t+C*2*pi)). Default values : 'resolution=1024', 'a=2', 'A=0', 'b=1', 'B=0', 'c=0' and 'C=0'. -n3d eq. to '-normalize3d'. -normalize3d Normalize selected 3d objects to unit size. (eq. to '-n3d'). -parametric3d _x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_iso- value>=0 Generate new 3d object from specified parametric surface (x(a,b),y(a,b),z(a,b)). Default values : 'x=(2+cos(b))*sin(a)', 'y=(2+cos(b))*cos(a)', 'c=sin(b)', 'amin=-pi', 'amax='pi', 'bmin=-pi', 'bmax='pi', 'res_a=512', 'res_b=res_a', 'res_x=64', 'res_y=res_x', 'res_z=res_y', 'smoothness=2%' and 'isovalue=10%'. -pca_patch3d _patch_size>0,_M>0,_N>0,_normalize_input={ 0 | 1 },_normalize_output={ 0 | 1 },_lambda_xy Generate 3d patch-pca representation of selected images. The 3d patch-pca is estimated from M patches on the input image, and displayed as a cloud of N 3d points. Default values : 'patch_size=7', 'M=1000', 'N=3000', 'normalize_input=1', 'normalize_output=0', and 'lambda_xy=0'. -plane3d _size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0 Input 3d plane at (0,0,0), with specified geometry. Default values : 'size_x=1', 'size_y=size_x' and 'nb_subdivisions_x=nb_subdivisions_y=24'. -point3d x0,y0,z0 Input 3d point at specified coordinates. -pointcloud3d Generate 3d point cloud from selected planar or volumetric images. -projections3d _x[%],_y[%],_z[%],_is_bounding_box={ 0 | 1 } Generate 3d xy,xz,yz projection planes from specified volumetric images. -pyramid3d width,height Generate 3d pyramid at (0,0,0), with specified geometry. -quadrangle3d x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3 Input 3d quadrangle at specified coordinates. -rotation3d u,v,w,angle Input 3x3 rotation matrix with specified axis and angle (in deg). -sierpinski3d _recursion_level>=0,_width,_height Generate new 3d Sierpinski pyramid. -snapshot3d _size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB Create 2d snapshots of selected 3d objects. Set 'zoom' to 0 to disable object auto-scaling. Default values : 'size=512', 'zoom=1' and 'backgroundR=backgroundG=backgroundB=(undefined)'. -spherical3d _nb_azimuth>=3,_nb_zenith>=3,_radius_function(phi,theta) Input 3d spherical object at (0,0,0), with specified geometry. Default values : 'nb_zenith=nb_azimut=64' and 'radius_function= -sprite3d Convert selected images as 3d sprites. -superformula3d resolution>1,m>=1,n1,n2,n3 Generate 2d superformula curve as a 3d object. Default values : 'resolution=1024', 'm=8', 'n1=1', 'n2=5' and 'n3=8'. -text3d text,_font_height>0,_depth>0,_smoothness Generate a 3d text object from specified text. Default values : 'font_height=57', 'depth=10' and 'smoothness=1.5'. -torus3d _radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2 Input 3d torus at (0,0,0), with specified geometry. Default values : 'radius1=1', 'radius2=0.3', 'nb_subdivisions1=24' and 'nb_subdivisions2=12'. -triangle3d x0,y0,z0,x1,y1,z1,x2,y2,z2 Input 3d triangle at specified coordinates. -weird3d _resolution>0 Generate 3d weird object at (0,0,0), with specified resolution. Default value : 'resolution=32'. ** Arrays and frames : -array M>0,_N>0,_expand_type={0,1,2} Create MxN array from selected images. Default values : 'N=M' and 'expand_type=0'. -array_fade M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0,1,2} Create MxN array from selected images. Default values : 'N=M', 'fade_start=60', 'fade_end=90' and 'expand_type=1'. -array_mirror N>=0,_dir={ 0=x | 1=y | 2=xy | 3=tri-xy },_expand_type={ 0 | 1 } Create 2^Nx2^N array from selected images. Default values : 'dir=2' and 'expand_type=0'. -array_pattern M>0,_N>0,_density>=0,_angle>=0,_zoom>=0,_opacity,_expand_type={0,1,2} Create random MxN array from selected images. Default values : 'N=M', 'density=80', 'angle=180', 'zoom=30', 'opacity=1' and 'expand_type=0'. -array_random Ms>0,_Ns>0,_Md>0,_Nd>0 Create MdxNd array of tiles from selected MsxNs source arrays. Default values : 'Ns=Ms', 'Md=Ms' and 'Nd=Ns'. -frame size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN Insert RGBA-colored frame in selected images. Default values : 'size_y=size_x' and 'col1=255'. -frame_blur _sharpness>0,_size>=0,_smoothness,_shading,_blur Draw RGBA-colored round frame in selected images. Default values : 'sharpness=10', 'size=30', 'smoothness=0', 'shade=1' and 'blur=3%'. -frame_cube _depth>=0,_x_center,_y_center,_left_side={0=normal | 1=mirror-x | 2=mirror-y | 3=mir- ror-xy},_right_side,_lower_side,_upper_side Insert 3d frames in selected images. Default values : 'depth=1', 'x_center=y_center=0' and 'left_side=right_side,lower_side=upper_side=0'. -frame_fuzzy size_x>=0,_size_y>=0,_fuzzyness>=0,_smoothness>=0,_R,_G,_B,_A Draw RGBA-colored fuzzy frame in selected images. Default values : 'size_y=size_x', 'fuzzyness=5', 'smoothness=1' and 'R=G=B=A=255'. -frame_painting _size[%]>=0,0<=_contrast<=1,_profile_smoothness[%]>=0,_R,_G,_B,_vignette_size[%]>=0,_vignette_con- trast>=0,_defects_contrast>=0,0<=_defects_density<=100,_defects_size>=0,_defects_smoothness[%]>=0,_serial_number Add a painting frame to selected images. Default values : 'size=10%', 'contrast=0.4', 'profile_smoothness=6%', 'R=225', 'G=200', 'B=120', 'vignette_size=2%', 'vignette_con- trast=400', 'defects_contrast=50', 'defects_density=10', 'defects_size=1', 'defects_smoothness=0.5%' and 'serial_number=123456789'. -frame_pattern M>=3,_pattern = { 0=first image | 1=self },_constrain_size = { 0 | 1 } Insert selected pattern frame in selected images. Default values : 'pattern=0' and 'constrain_size=0'. -frame_round _sharpness>0,_size>=0,_smoothness,_shading,_R,_G,_B,_A Draw RGBA-colored round frame in selected images. Default values : 'sharpness=10', 'size=10', 'smoothness=0', 'shade=0' and 'R=G=B=A=255'. -imagegrid _M>0,_N>0 Create MxN image grid from selected images. Default value : 'N=M'. -linearize_tiles M>0,_N>0 Linearize MxN tiles on selected images. Default value : 'N=M'. -quadratize_tiles M>0,_N>0 Quadratize MxN tiles on selected images. Default value : 'N=M'. -rotate_tiles angle,_M>0,N>0 Apply MxN tiled-rotation effect on selected images. Default values : 'M=8' and 'N=M'. -shift_tiles M>0,_N>0,_amplitude Apply MxN tiled-shift effect on selected images. Default values : 'N=M' and 'amplitude=20'. -taquin M>0,_N>0 Create MxN taquin puzzle from selected images. Default value : 'N=M'. -tunnel _level>=0,_factor>0,_cx,_cy,_opacity. Apply tunnel effect on selected images. Default values : 'level=9', 'factor=80%', 'cx=cy=0.5' and 'opacity=1'. ** Artistic : -cartoon _smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0 Apply cartoon effect on selected images. Default values : 'smoothness=3', 'sharpening=80', 'threshold=20', 'thickness=0.25', 'color=1.5' and 'quantization=8'. -circlism _radius_min>0,_radius_max>0,_smoothness[%]>=0,_radius_linearity>=0,_location_linearity>=0,_shape={0=squares | 1=dia- monds | 2=circle } Apply circlism effect on selected images (effect inspired by Ben Heine). Default values : 'radius_min=2', 'radius_max=20', 'smoothness=1', 'radius_linearity=0.4', 'location_linearity=3' and 'shape=1'. -color_ellipses _count>0,_radius>=0,_opacity>=0 Add random color ellipses to selected images. Default values : 'count=400', 'radius=5' and 'opacity=0.1'. -cubism _nb_iter>=0,_bloc_size>0,_max_angle,_opacity,_smoothness>=0 Apply cubism effect on selected images. Default values : 'nb_iter=160', 'bloc_size=10', 'max_angle=75', 'opacity=0.7' and 'smoothness=0'. -dotsbw _nb_scales>=0,_resolution>0,_radius>=0 Apply B&W dots effect on selected images. Default values : 'nb_scales=4', 'resolution=10' and 'radius=3'. -draw_whirl _amplitude>=0 Apply whirl drawing effect on selected images. Default value : 'amplitude=100'. -drawing _amplitude>=0 Apply drawing effect on selected images. Default value : 'amplitude=200'. -drop_shadow _offset_x[%],_offset_y[%],_smoothness[%] Drop shadow behind selected images. Default values : 'offset_x=20', 'offset_y=offset_x' and 'smoothness=5'. -ellipsionism _R>0[%],_r>0[%],_smoothness>=0[%],_opacity,_outline>0,_density>0 Apply ellipsionism filter to selected images. Default values : 'R=10', 'r=3', 'smoothness=1%', 'opacity=0.7', 'outlise=8' and 'density=0.6'. -fire_edges _edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0 Generate fire effect from edges of selected images. Default values : 'edges=0.7', 'attenuation=0.25', 'smoothness=0.5', 'threshold=25', 'nb_frames=1', 'starting_frame=20' and 'frame_skip=0'. -glow _amplitude>=0 Add soft glow on selected images. Default value : 'amplitude=1%'. -hardsketchbw _amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={ 0 | 1 } Apply hard B&W sketch effect on selected images. Default values : 'amplitude=1000', 'sampling=3', 'opacity=0.1', 'edge_threshold=20' and 'is_fast=0'. -hearts _density>=0 Apply heart effect on selected images. Default value : 'density=10'. -houghsketchbw _density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0 Apply hough B&W sketch effect on selected images. Default values : 'density=8', 'radius=5', 'threshold=80', 'opacity=0.1' and 'votesize=100%'. -lightrays 100<=_density<=0,_cx,_cy,_ray_length>=0,_ray_attenuation>=0 Generate ray lights from the edges of selected images. Defaults values : 'density=50%', 'cx=0.5', 'cy=0.5', 'ray_length=0.9' and 'ray_attenuation=0.5'. -light_relief _ambient_light,_specular_light,_specular_size,_darkness,_xl,_yl,_zl,_zscale,_opacity_bumpmap={ 0 | 1 } Apply relief light to selected images. Default values(s) : 'ambient_light=0.3', 'specular_light=0.5', 'specular_size=0.2', 'darkness=0', 'xl=0.2', 'yl=zl=0.5', 'zscale=1', 'opacity=1' and 'opacity_bumpmap=0'. -mosaic _density>=0,_edges={ 0 | 1 } Create random mosaic from selected images. Default values : 'density=0.8' and 'edges=1'. -old_photo Apply old photo effect on selected images. -pencilbw _size>=0,_amplitude>=0 Apply B&W pencil effect on selected images. Default values : 'size=0.3' and 'amplitude=60'. -polaroid _size1>=0,_size2>=0 Create polaroid effect in selected images. Defaut values : 'size1=10' and 'size2=20'. -puzzle _scale>=0 Apply puzzle effect on selected images. Default value : 'scale=5'. -rodilius 0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={ 0=darker | 1=brighter } Apply rodilius (fractalius-like) filter on selected images. Default values : 'amplitude=10', 'thickness=10', 'sharpness=400', 'nb_orientations=7', 'offset=0' and 'color_mode=1'. -stained_glass _edges[%]>=0, shading>=0, is_thin_separators={ 0 | 1 } Generate stained glass from selected images. Default values : 'edges=40%', 'shading=0.2' and 'is_precise=0'. -sketchbw _nb_orients>0,_start_angle,_angle_range>=0,_length>=0,_threshold>=0, _opacity,_bgfactor>=0,_density>0,_sharpness>=0, _anisotropy>=0,_smoothness>=0,_coherence>=0,_is_boost={ 0 | 1 },_is_curved={ 0 | 1 } Apply sketch effect to selected images. Default values : 'nb_orients=2', 'start_angle=45', 'angle_range=180', 'length=30', 'threshold=1', 'opacity=0.03', 'bgfactor=0', 'density=0.6', 'sharpness=0.1', 'anisotropy=0.6', 'smoothness=0.25', 'coherence=1', 'is_boost=0' and 'is_curved=1'. -sponge _size>0 Apply sponge effect on selected images. Default value : 'size=13'. -stencil _radius[%]>=0,_smoothness>=0,_iterations>=0 Apply stencil filter on selected images. Default values : 'radius=3', 'smoothness=1' and 'iterations=8'. -stencilbw _edges>=0,_smoothness>=0 Apply B&W stencil effect on selected images. Default values : 'edges=15' and 'smoothness=10'. -tetris _scale>0 Apply tetris effect on selected images. Default value : 'scale=10'. -warhol _M>0,_N>0,_smoothness>=0,_color>=0 Create MxN Andy Warhol-like artwork from selected images. Default values : 'M=3', 'N=M', 'smoothness=2' and 'color=20'. -whirls _texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0 Add random whirl texture to selected images. Default values : 'texture=3', 'smoothness=6', 'darkness=0.5' and 'lightness=1.8'. ** Warpings : -euclidean2polar _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Apply euclidean to polar transform on selected images. Default values : 'cx=cy=0.5', 'n=1' and 'boundary=1'. -deform _amplitude>=0 Apply random smooth deformation on selected images. Default value : 'amplitude=10'. -fisheye _x,_y,0<=_radius<=100,_amplitude>=0 Apply fish-eye deformation on selected images. Default values : 'x=y=50', 'radius=50' and 'amplitude=1.2'. -flower _amplitude,_frequency,_offset_r[%],_angle,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Apply flower deformation on selected images. Default values : 'amplitude=30', 'frequency=6', 'offset_r=0', 'angle=0', 'cx=cy=0.5' and 'boundary=2'. -kaleidoscope _cx,_cy,_radius,_angle,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Create kaleidoscope effect from selected images. Default values : 'cx=cy=0.5', 'radius=100', 'angle=30' and 'boundary=1'. -map_sphere _width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0 Map selected images on a sphere. Default values : 'width=height=512', 'radius=100', 'dilation=0.5', 'fading=0' and 'fading_power=0.5'. -polar2euclidean _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Apply polar to euclidean transform on selected images. Default values : 'cx=cy=0.5', 'n=1' and 'boundary=1'. -ripple _amplitude,_frequency,_shape={ 0=bloc | 1=triangle | 2=sine | 3=sine+ | 4=random },_angle,_offset Apply ripple deformation on selected images. Default values : 'amplitude=10', 'frequency=10', 'shape=2', 'angle=0' and 'offset=0'. -rotoidoscope _cx,_cy,_tiles>0,_smoothness[%]>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic} Create rotational kaleidoscope effect from selected images. Default values : 'cx=cy=50%', 'tiles=10', 'smoothness=1' and 'boundary=1'. -transform_polar Apply user-defined transform on polar representation of selected images. Default values : 'expr_radius=R-r', 'expr_rangle=a', 'x_center=y_center=50' and 'boundary=1'. -twirl _amplitude,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Apply twirl deformation on selected images. Default values : 'amplitude=1', 'cx=cy=0.5' and 'boundary=1'. -warp_perspective _x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Warp selected images with perspective deformation. Default values : 'x-angle=1.5', 'y-angle=0', 'zoom=1', 'x-center=y-center=50' and 'boundary=2'. -water _amplitude>=0,_smoothness>=0 Apply water deformation on selected images. Default values : 'amplitude=30' and 'smoothness=1.5'. -wave _amplitude>=0,_frequency>=0,_center_x,_center_y Apply wave deformation on selected images. Default values : 'amplitude=4', 'frequency=0.4' and 'center_x=center_y=50'. -wind _amplitude>=0,_angle,0<=_attenuation<=1,_threshold Apply wind effect on selected images. Default values : 'amplitude=20', 'angle=0', 'attenuation=0.7' and 'threshold=20'. -zoom _factor,_cx,_cy,_cz,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } Apply zoom factor to selected images. Default values : 'factor=1', 'cx=cy=cz=0.5' and 'boundary=0'. ** Degradations : -cracks _density>=0,_amplitude,_relief={ 0 | 1 } Add random cracks to selected images. Default values : 'density=0.2', 'amplitude=40' and 'relief=0'. -light_patch _density>0,_darkness>=0,_lightness>=0 Add light patches to selected images. Default values : 'density=10', 'darkness=0.9' and 'lightness=1.7'. -noise_hurl _amplitude>=0 Add hurl noise to selected images. Default value : 'amplitude=10'. -pixelize _scale_x>0,_scale_y>0,_scale_z>0 Pixelize selected images with specified scales. Default values : 'scale_x=20' and 'scale_y=scale_z=scale_x'. -shade_stripes _frequency>=0,_direction={ 0=horizontal | 1=vertical },_darkness>=0,_lightness>=0 Add shade stripes to selected images. Default values : 'frequency=5', 'direction=1', 'darkness=0.8' and 'lightness=2'. -shadow_patch _opacity>=0 Add shadow patches to selected images. Default value : 'opacity=0.7'. -spread _dx>=0,_dy>=0,_dz>=0 Spread pixel values of selected images randomly along x,y and z. Default values : 'dx=3', 'dy=dx' and 'dz=0'. -stripes_y _frequency>=0 Add vertical stripes to selected images. Default value : 'frequency=10'. -texturize_canvas _amplitude>=0,_fibrousness>=0,_emboss_level>=0 Add paint canvas texture to selected images. Default values : 'amplitude=20', 'fibrousness=3' and 'emboss_level=0.6'. -texturize_paper Add paper texture to selected images. -watermark_visible _text,0<_opacity<1,_size>0,_angle,_mode={ 0=remove | 1=add },_smoothness>=0 Add or remove a visible watermark on selected images (value range must be [0,255]). Default values : 'text=(C) G'MIC', 'opacity=0.3', 'size=57', 'angle=25', 'mode=1' and 'smoothness=0'. ** Blending and fading : -compose_alpha Compose selected images two-by-two, using alpha blending. -compose_average Compose selected images two-by-two, using average mode. -compose_channels Compose all channels of each selected image, using specified arithmetic operator (+,-,or,min,...). Default value : '1=+'. -compose_colorburn Compose selected images two-by-two, using color burn mode. -compose_darken Compose selected images two-by-two, using darken mode. -compose_difference Compose selected images two-by-two, using difference mode. -compose_divide Compose selected images two-by-two, using divide mode. -compose_dodge Compose selected images two-by-two, using dodge mode. -compose_edges smoothness[%]>=0 Compose selected images togethers using edge mode. -compose_exclusion Compose selected images two-by-two, using exclusion mode. -compose_fade Compose selected images togethers using a given fading (defined as the latest image). -compose_freeze Compose selected images two-by-two, using freeze mode. -compose_grainextract Compose selected images two-by-two, using grain extract mode. -compose_grainmerge Compose selected images two-by-two, using grain merge mode. -compose_hardlight Compose selected images two-by-two, using hard light mode. -compose_hue Compose selected images two-by-two, using hue mode. -compose_interpolation Compose selected images two-by-two, using interpolation mode. -compose_lighten Compose selected images two-by-two, using lighten mode. -compose_lightness Compose selected images two-by-two, using lightness mode. -compose_luminance Compose selected images two-by-two, using luminance mode. -compose_median Compose selected images together using median mode. -compose_multiply Compose selected images two-by-two, using multiply mode. -compose_negation Compose selected images two-by-two, using negation mode. -compose_overlay Compose selected images two-by-two, using overlay mode. -compose_reflect Compose selected images two-by-two, using reflect mode. -compose_rgba Compose selected images two-by-two, as RGBA images over RGB backgrounds. -compose_saturation Compose selected images two-by-two, using saturation mode. -compose_screen Compose selected images two-by-two, using screen mode. -compose_shapeaverage Compose selected images two-by-two, using shape average mode. -compose_softlight Compose selected images two-by-two, using soft light mode. -compose_stamp Compose selected images two-by-two, using stamp mode. -compose_value Compose selected images two-by-two, using value mode. -compose_xor Compose selected images two-by-two, using xor mode. -fade_diamond 0<=_start<=100,0<=_end<=100 Create diamond fading from selected images. Default values : 'start=80' and 'end=90'. -fade_linear _angle,0<=_start<=100,0<=_end<=100 Create linear fading from selected images. Default values : 'angle=45', 'start=30' and 'end=70'. -fade_radial 0<=_start<=100,0<=_end<=100 Create radial fading from selected images. Default values : 'start=30' and 'end=70'. -fade_x 0<=_start<=100,0<=_end<=100 Create horizontal fading from selected images. Default values : 'start=30' and 'end=70'. -fade_y 0<=_start<=100,0<=_end<=100 Create vertical fading from selected images. Default values : 'start=30' and 'end=70'. -fade_z 0<=_start<=100,0<=_end<=100 Create transversal fading from selected images. Default values : 'start=30' and 'end=70'. ** Image sequences : -animate filter_name, delay>0 Animate filter from starting parameters to ending parameters. Default value : 'delay=30'. -morph nb_frames>0,_smoothness>=0,_precision>0 Create morphing sequence between selected images. Default values : 'smoothness=0.1' and 'precision=5'. -register_nonrigid _smoothness>=0,_precision>0,_nb_scale>=0 Register selected images with non-rigid warp. Default values : 'smoothness=0.2', 'precision=6' and 'nb_scale=0(auto)'. -register_rigid _smoothness>=0 Register selected images with rigid warp. Default value : 'smoothness=1'. ** Interactive demos : -x_blobs Launch the blobs editor. -x_fire Launch the fire demo. -x_fireworks Launch the fireworks demo. -x_fisheye Launch fish-eye demo. -x_fourier Launch fourier filtering demo. -x_histogram Launch histogram demo. -x_hough Launch hough transform demo. -x_jawbreaker 0<_width<20,0<_height<20,0<_balls<=8 Launch the Jawbreaker game. -x_life Launch the game of life. -x_light Launch the light demo. -x_mandelbrot _julia={ 0 | 1 },_c0r,_c0i Launch Mandelbrot/Julia explorer. -x_minesweeper 8<=_width=<20,8<=_height<=20 Launch the Minesweeper game. -x_minimal_path Launch the minimal path demo. -x_paint Launch the interactive painter. -x_plasma Launch the plasma demo. -x_reflection3d Launch the 3d reflection demo. -x_rubber3d Launch the 3d rubber demo. -x_shadebobs Launch the shade bobs demo. -x_spline Launch spline curve editor. -x_tictactoe Launch tic-tac-toe game. -x_whirl _opacity>=0 Launch fractal whirl demo. Default values : 'opacity=0.2'. ** PINK-library operators : -output_pink3d filename Save selected images as P5-coded PPM files (PINK extension for 3d volumetric images). -pink Pink wrapper name,p1, .. ,pn (requires the PINK library to be installed). (http://pinkhq.com/) prepares input, calls external -pink_grayskel _connectivity={ 4 | 8 | 6 | 26 }, _lambda=0 (http://pinkhq.com/grayskel_8c.html) Grayscale homotopic skeleton (requires the PINK library to be installed). Default values : 'connectivity=4' and 'lambda=0'. -pink_heightmaxima _connectivity={ 4 | 8 | 6 | 26 },_height=1 (http://pinkhq.com/heightmaxima_8c.html) Heightmaxima filtering (requires the PINK library to be installed). Default values : 'connectivity=4' and 'height=1'. -pink_heightminima _connectivity={ 4 | 8 | 6 | 26 },_height=1 (http://pinkhq.com/heightminima_8c.html) Heightminima filtering (requires the PINK library to be installed). Default values : 'connectivity=4' and 'height=1'. -pink_htkern _connectivity={ 4 | 8 | 6 | 26 }, _type={ (http://pinkhq.com/htkern_8c.html) (http://pinkhq.com/htkernu_8c.html) Grayscale ultimate homotopic thinning/thickening without condition (requires the PINK library to be installed). Default values : 'connectivity=4' and 'type= -pink_lvkern _connectivity={ 4 | 8 | 6 | 26 }, _type={ (http://pinkhq.com/lvkern_8c.html) (http://pinkhq.com/lvkernu_8c.html) Grayscale ultimate leveling thinning/thickening without condition (requires the PINK library to be installed). Default values : 'connectivity=4' and 'type= -pink_reg_minima _connectivity={ 4 | 8 | 6 | 26 } (http://pinkhq.com/minima_8c.html) Regional minima (requires the PINK library to be installed). Default values : 'connectivity=4'. -pink_skelcurv _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={ (http://pinkhq.com/skelcurv_8c.html) Curvilinear binary skeleton guided by a priority function or image (requires the PINK library to be installed). Default values : 'prio=0', 'connectivity=4' and 'inhibit= -pink_skelend _connectivity={ 4 | 8 | 6 | 26 },_n=0 (http://pinkhq.com/skelend_8c.html) Homotopic skeleton of a 2d or 3d binary image with dynamic detection of end points (requires the PINK library to be installed). Default values : 'connectivity=4' and 'n=0'. -pink_skeleton _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={ (http://pinkhq.com/skeleton_8c.html) Ultimate binary skeleton guided by a priority image (requires the PINK library to be installed). Default values : 'prio=0', 'connectivity=4' and 'inhibit= -pink_skelpar _algorithm={0..29},_nsteps=_1,_inhibit= (http://pinkhq.com/skelpar_8c.html) Parallel binary skeleton (requires the PINK library to be installed). Default values : 'algorithm=4', 'nsteps=-1' and 'inhibit= -pink_wshed _connectivity={ 4 | 8 | 6 | 26 },_inverse={ 0 | 1 },_height=0 (http://pinkhq.com/wshedtopo_8c.html) Watershed (requires the PINK library to be installed). Default values : 'connectivity=4', 'inverse=0' and 'height=0'. ** Convenience functions : -arg n,_arg1,...,_argN Return the n-th argument of the specified argument list. 'n' can be also a pattern, as '1--1' for instance. -at _x,_y,_z Return a specified vector-valued point (x,y,z) from the latest of the selected images. -basename file_path,_variable_name_for_folder Return the basename of a file path, and opt. its folder location. When specified 'variable_name_for_folder' must starts by an underscore (global variable accessible from calling function). -bin binary_int1,... Print specified binary integers into their octal, decimal, hexadecimal and string representations. -bin2dec binary_int1,... Convert specified binary integers into their decimal representations. -dec decimal_int1,... Print specified decimal integers into their binary, octal, hexadecimal and string representations. -dec2str decimal_int1,... Convert specifial decimal integers into its string representation. -dec2bin decimal_int1,... Convert specified decimal integers into their binary representations. -dec2hex decimal_int1,... Convert specified decimal integers into their hexadecimal representations. -dec2oct decimal_int1,... Convert specified decimal integers into their octal representations. -fact value Return the factorial of the specified value. -file_mv filename_src,filename_dest Rename or move a file from a location $1 to another location $2. -file_rand Return a random filename for storing temporary data. -file_rm filename Delete a file. -file_slash Return '/' or '' as a path separator for filenames. -filename filename,_number1,_number2,...,_numberN Return a filename numbered with specified indices. -fitratio_wh min_width,min_height,ratio_wh Return a 2d size 'width,height' which is bigger than 'min_width,min_height' and has the specified w/h ratio. -fitscreen width,height,_depth Return the 'ideal' size WxH for a window intended to display an image of specified size on screen. -gcd a,b Return the GCD (greatest common divisor) between a and b. -hex hexadecimal_int1,... Print specified hexadecimal integers into their binary, octal, decimal and string representations. -hex2dec hexadecimal_int1,... Convert specified hexadecimal integers into their decimal representations. -hex2str hexadecimal_string Convert specified hexadecimal string into a string. -img82hex Convert selected 8bits-valued vectors into their hexadecimal representations (ascii-encoded). -hex2img8 Convert selected hexadecimal representations (ascii-encoded) into 8bits-valued vectors. -is_3d Return 1 if all of the selected image are 3d objects, 0 otherwise. -is_percent string Return 1 if specified string ends with a '%', 0 otherwise. -is_windows Return 1 if current computer OS is Windows, 0 otherwise. -max_s Return the maximal s size of selected images. -max_wh Return the maximal wxh size of selected images. -max_whd Return the maximal wxhxd size of selected images. -max_whds Return the maximal wxhxdxs size of selected images. -min_s Return the minimal s size of selected images. -min_wh Return the minimal wxh size of selected images. -min_whd Return the minimal wxhxd size of selected images. -min_whds Return the minimal wxhxdxs size of selected images. -oct octal_int1,... Print specified octal integers into their binary, decimal, hexadecimal and string representations. -oct2dec octal_int1,... Convert specified octal integers into their decimal representations. -padint number,_size>0 Return a integer with 'size' digits (eventually left-padded with '0'). -path_tmp Return a path to store temporary files (whose value is OS-dependent). -path_user Return a path to store persistent configuration files for one user (whose value is OS-dependent). -quote string Return a -reset Reset global parameters of the interpreter environment. -RGB Return a random int-valued RGB color. -RGBA Return a random int-valued RGBA color. -str string Print specified string into its binary, octal, decimal and hexadecimal representations. -str2hex string Convert specified string into a sequence of hexadecimal values. -stresc val1,...,valN Return escaped string from specified ascii codes. -strcat string1,string2,... Return the concatenation of all strings passed as arguments. -strcmp string1,string2 Return 1 if the two strings are equal, 0 otherwise. -strlen string1 Return the length of specified string argument. -strreplace string,search,replace Search and replace substrings in an input string. -struncase string Return a lower-case version of the specified string. -strver Return the current version number of the G'MIC interpreter, as a string. -tic Initialize tic-toc timer. Use it in conjunction with '-toc'. -toc Display elapsed time of the tic-toc timer since the last call to '-tic'. Use it in conjunction with '-tic'. ** Others : -gpt _scorefile,_number_of_sessions>=0 Generate score board for the GPT championship (GREYC Poker Tour). ** Total number of commands 761 Examples of use --------------- 'gmic' is a generic image processing tool which can be used in a wide variety of situations. The few examples below illustrate possible uses of this tool : - View a list of images : gmic file1.bmp file2.jpeg - Convert an image file : gmic input.bmp -o output.jpg - Create a volumetric image from a movie sequence : gmic input.mpg -a z -o output.hdr - Compute image gradient norm : gmic input.bmp -gradient_norm - Denoise a color image : gmic image.jpg -denoise 30,10 -o denoised.jpg - Compose two images using overlay fading : gmic image1.jpg image2.jpg -compose_overlay -o composed.jpg - Evaluate a mathematical expression : gmic -e - Plot a 2d function : gmic 1000,1,1,2 -f - Plot a 3d elevated function in random colors: gmic 128,128,1,3, -elevation3d[-1] - Plot the isosurface of a 3d volume : gmic -m3d 5 -md3d 5 -db3d 0 -isosurface3d - Render a G'MIC 3d logo : gmic 1 -text G'MIC,0,0,57,1,1,1,1 -expand_xy 10,0 -blur 2 -n 0,100 --plasma 0.4 -+ -blur 1 -elevation3d -0.1 -md3d 4 - Generate a 3d ring of torii : gmic -repeat 20 -torus3d 15,2 -col3d[-1] -*3d[-1] 0.5,1 -if -r3d 0,0,1,18 -done -md3d 3 -m3d 5 -db3d 0 - Create a vase from a 3d isosurface : gmic -md3d 4 -isosurface3d --3d[-1] 0,5 -plane3d 15,15 -r3d[-1] 1,0,0,90 -c3d[-1] -+3d[-1] 0,3.2 -col3d[-1] 180,150,255 -col3d[-2] 128,255,0 -col3d[-3] 255,128,0 -+3d - Display filtered webcam stream : gmic -apply_camera "--mirror x --mirror y -+ -/ 4" - Launch a set of G'MIC interactive demos : gmic -x_fisheye -x_fire G'MIC -x_tictactoe -rm -x_spline -x_mandelbrot 0 -x_light -x_whirl , -x_life -x_jawbreaker , -x_blobs ** G'MIC comes with ABSOLUTELY NO WARRANTY; for details visit http://gmic.sourceforge.net ** Thu Jun 21 18:36:03 CEST 2012 G'MIC(1)