G'MIC(1)

NAME
gmic - Perform generic image processing operations, through the G'MIC language interpreter.

HELP

 gmic: GREYC's Magic for Image Computing.

        Version 1.5.6.1, Copyright (C) 2008-2013, David Tschumperle.
        (http://gmic.sourceforge.net)
 1. 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 design 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.

 This documentation proposes a complete description of the G'MIC language basics and rules.
 2. 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, '[1]' and '[-3]'
     both designate 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.
 3. 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).
 4. 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 '
 5. 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.
 6. 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.
 7. 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 'filename.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 'filename.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
      'filename.yuv,width,height[,first_frame[,last_frame[,step]]]'.
    . tiff files: Only sub-images of multi-pages tiff files can be loaded, using the input
       expression 'filename.tif,[first_frame,[last_frame,[step]]]'.
    . .gif files: Animated gif files can be saved, using the input expression
      'filename.gif,fps,nb_loops'.
      Specify 'nb_loops=0' to get an infinite number of animation loops.
    . .jpeg files: The output quality may be specified (in %), using the output expression
       'filename.jpg,30' (here, to get a 30% quality output).
    . .mnc files: The output header can set from another file, using the output expression
       'filename.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.
 8. 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 current verbosity level.
    . '@%' 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 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').
    . 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'.
 9. 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.
         . 'j(_dx,_dy,_dz,_dc,_interpolation,_boundary)': does the same for the pixel located
            at position (x+dx,y+dy,z+dz,c+dc).
            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.
         . If specified formula starts with '>' or '<', the operators 'i(..)' and 'j(..)' will return
            values of the image currently being modified, in forward ('>') or backward ('<') order.
  - 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.
 10. 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.
 11. 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.
  - 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 requested in a custom command has no value, an error is thrown
     by the interpreter.
 12. List of commands
     ----------------
 All available 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
 '(*)' or '(+)' is a native command. '(*)' means the command is available for all pixel types,
 otherwise only for the default 'float' pixel type.
 Remember that native commands run faster than custom commands, so use then when possible.
 Note also that all images in this reference documentation are normalized in [0,255] before
 being displayed. You may need to do this manually (command '-normalize 0,255') if you want
 save image files having the same aspect than those displayed.
 ** Global options:
    -debug (*):
        Activate debug mode.
        When activated, the G'MIC interpreter becomes very verbose and outputs additionnal log
        messages about its internal state on the standard output (stdout).
        This option can be useful when debugging the execution of a custom command.
    -help (*):
                        _command |
                        (no args)
        Display help (optionally for specified command only) and exit.
        (eq. to '-h').
    -version:
        Display current version number and exit.
 ** Inputs / outputs:
    -apply_camera:
                        _command,_camera_index>=0,_skip_frames>=0,_output_filename
        Apply specified command on live camera stream, and display it on display window [0].
        Default values: 'command=
          '.
    -camera (*):
                        _camera_index>=0,_nb_frames>0,_skip_frames>=0,release_camera={ 0 | 1 },_capture_\
                        width>=0,_capture_height>=0
        Insert one or several frames from specified camera, with custom delay between frames (in ms).
        When 'release_camera==1', the camera stream is released instead of capturing new images.
        Default values: 'camera_index=0' (default camera), 'nb_frames=1', 'skip_frames=0', 'release_came\
          ra=0' and 'capture_width=capture_height=0' (default size).
    -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 (+):
                        _X,_Y,_Z
        Display selected images in an interactive viewer (use the instant window [0] if opened).
        Arguments 'X','Y','Z' determine the initial selection view, for 3d volumetric images.
        (eq. to '-d').
    -display0:
        Display selected images without value normalization.
        (eq. to '-d0').
    -display3d (+):
        Display selected 3d objects in an interactive viewer (use the instant window [0] if opened).
        (eq. to '-d3d').
    -display_array:
                        _width>0,_height>0
        Display images in interactive windows where pixel neighborhoods can be explored.
        Default values: 'width=13' and 'height=width'.
    -display_fft:
        Display fourier transform of selected images, with centered log-module and argument.
        (eq. to '-dfft').
    -display_graph:
                        _width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_yl\
                        abel
        Render graph plot from selected image data.
        Default values: 'width=640', 'height=480', 'plot_type=1', 'vertex_type=1', 'xmin=xmax=ymin=ymax=\
          0', 'xlabel=
    -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'.
    -display_polar:
                        _width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_e\
                        nd
        Render polar curve from selected image data.
        (eq. to '-dp').
        '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', 'thet\
          a_start=0' and 'theta_end=360'.
    -display_rgba:
        Render selected RGBA images over a checkerboard background.
        (eq. to '-drgba').
    -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'.
    -display_warp:
                        _cell_size>0
        Render selected 2d warping fields.
        (eq. to '-dw').
        Default value: 'cell_size=15'.
    -document_gmic:
                        _format={ ascii | html | latex | xml | bash | images },_image_path,_write_wrappe\
                        r={ 0 | 1 }
        Create documentation of .gmic command files (loaded as raw 'uchar' images), in specified format.
        Default values: 'format=ascii', 'image_path=
        Example(s) : raw:file.gmic,uchar -document_gmic html,img
    -echo (*):
                        message
        Output specified message, on the error output.
        (eq. to '-e').
        Command subset (if any) stands for displayed scope indices instead of image indices.
    -echo_file:
                        filename,message
        Output specified message, appending it to specified output file.
        (similar to '-echo' for specified output file stream).
    -echo_stdout:
                        message
        Output specified message, on the standard output (stdout).
        (similar to '-echo' for output on standard output instead of standard error).
    -function1d:
                        0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn
        Input 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'.
    -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).
    -outputn:
                        filename
        Output selected images as automatically numbered filenames in repeat..done loops.
        (eq. to '-on').
    -outputp:
                        prefix
        Output selected images as prefixed versions of their original filenames.
        (eq. to '-op').
        Default value: 'prefix=_'.
    -outputw:
        Output selected images by overwritting their original location.
        (eq. to '-ow').
    -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 (*):
        Output informations on selected images, on the standard error (stderr).
        (eq. to '-p').
    -rainbow_lut:
        Input a 256-entries RGB colormap of rainbow colors.
    -roddy:
        Load a new image of the G'MIC Rodilius mascot 'Roddy'.
    -remove_duplicates:
        Remove duplicates images in the selected images list.
    -remove_empty:
        Remove empty images in the selected image list.
    -select (+):
                        feature_type,_X,_Y,_Z
        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 }.
        Arguments 'X','Y','Z' determine the initial selection view, for 3d volumetric images.
        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').
    -srand (*):
                        value |
                        (no args)
        Set random generator seed.
        If no argument is specified, a random value is used as the random generator seed.
    -testimage2d:
                        _width>0,_height>0,_spectrum>0
        Input a 2d synthetic image.
        Default values: 'width=512', 'height=width' and 'spectrum=3'.
    -text2img:
                        text,_line_separator
        Input a 2d image whose values are ASCII characters of specified input text.
        Default value: 'line_separator= '.
    -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.
    -uniform_distribution:
                        nb_levels>=1,spectrum>=1
        Input set of uniformly distributed N-d points in [0,1]^N.
    -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').
    -verbose (*):
                        level |
                        { + | - }
        Set or increment/decrement the verbosity level.
        (eq. to '-v').
        When 'level'>=0, G'MIC log messages are displayed on the standard error (stderr).
        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 error (stderr).
        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,_is_modified={ 0 | 1 }
        Set name of selected images.
        (eq. to '-nm').
        Argument 'is_modified' tells about the modified state of selected images.
        Default value: 'is_modified=0'.
    -remove (*):
        Remove selected images.
        (eq. to '-rm').
    -reverse (*):
        Reverse positions of selected images.
        (eq. to '-rv').
    -sort_list:
                        _ordering={ + | - },_criterion
        Sort list of selected images according to the specified image criterion.
        Default values: 'ordering=+', 'criterion=i'.
    -sort_str:
        Sort selected images (viewed as a list of strings) in lexicographic order.
 ** 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 right multiplication of selected matrices/vectors by specified value, image o\
          r
        mathematical expression, or compute the matrix right 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:
    -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.
    -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).
    -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.
    -endian (*):
        Reverse data endianness of selected images.
    -equalize:
                        _nb_levels>0[%],_value_min[%],_value_max[%]
        Equalize histograms of selected images.
        If value range is specified, the equalization is done only for pixels in the specified
        value range.
        Default values: 'value_min=0%' and 'value_max=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').
    -float2int8:
        Convert selected float-valued images to 8bits integer representations.
    -int82float:
        Convert selected 8bits integer representations to float-valued images.
    -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 }.
    -mix_channels:
                        (a00,...,aMN)
        Apply specified matrix to channels of selected images.
    -negative:
        Compute negative of selected images.
    -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'.
    -norm:
        Compute the pointwise euclidean norm of vector-valued pixels in selected images.
    -normalize (+):
                        { value0[%] | [image0] },{ value1[%] | [image1] } |
                        [image]
        Linearly normalize values of selected images in specified range.
        (eq. to '-n').
    -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,_keep_values={ 0 | 1 },_is_uniform={ 0 | 1 }
        Quantize selected images.
        Default value: 'keep_values=1' and 'is_uniform=0'.
    -rand (+):
                        { value0[%] | [image0] },{ value1[%] | [image1] } |
                        [image]
        Fill selected images with random values uniformly distributed in the specified range.
    -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.
    -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'.
    -roundify:
                        gamma>=0
        Apply roundify transformation on float-valued data, with specified gamma.
        Default value: 'gamma=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[%],_is_soft |
                        (no args)
        Threshold values of selected images.
        'soft' can be { 0=hard-thresholding | 1=soft-thresholding }.
        (noargs) runs interactive mode (uses the instant window [0] if opened).
        Default value: 'is_soft=0'.
    -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:
                        },_normalize={ 0=cut | 1=normalize }
        Apply specified command on chosen normalized channels of each selected images.
        Default value: 'normalize=0'.
    -autoindex:
                        nb_colors>0,0<=_dithering<=1,_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'.
    -cmy2rgb:
        Convert selected images from CMY to RGB colorbases.
    -cmyk2rgb:
        Convert selected images from CMYK to RGB colorbases.
    -colormap:
                        nb_levels>=1,_method={ 0=median-cut | 1=k-means },_sort_vectors={ 0 | 1 }
        Estimate best-fitting colormap with 'nb_colors' entries, to index selected images.
        Default value: 'method=0' and 'sort_vectors=1'.
    -compose_channels:
        Compose all channels of each selected image, using specified arithmetic operator (+,-,or,min,...\
          ).
        Default value: '1=+'.
    -direction2rgb:
        Compute RGB representation of selected 2d direction fields.
    -ditheredbw:
        Create dithered B&W version of selected images.
    -fill_color:
                        col1,...,colN
        Fill selected images with specified color.
        (eq. to '-fc').
    -gradient2rgb:
                        _is_orientation={ 0 | 1 }
        Compute RGB representation of 2d gradient of selected images.
        Default value: 'is_orientation=0'.
    -hsi2rgb (+):
        Convert selected images from HSI to RGB colorbases.
    -hsi82rgb:
        Convert selected images from HSI8 to RGB color bases.
    -hsl2rgb (+):
        Convert selected images from HSL to RGB colorbases.
    -hsl82rgb:
        Convert selected images from HSL8 to RGB color bases.
    -hsv2rgb (+):
        Convert selected images from HSV to RGB colorbases.
    -hsv82rgb:
        Convert selected images from HSV8 to RGB color bases.
    -lab2lch:
        Convert selected images from Lab to Lch color bases.
    -lab2rgb (+):
        Convert selected images from Lab to RGB colorbases.
    -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 sRGB 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'.
    -pseudogray:
                        _max_increment>=0,_JND_threshold>=0,_bits_depth>0
        Generate pseudogray colormap with specified increment and perceptual threshold.
        If 'JND_threshold' is 0, no perceptual constraints are applied.
        Default values: 'max_increment=5', 'JND_threshold=2.3' and 'bits_depth=8'.
    -replace_color:
                        tolerance[%]>=0,smoothness[%]>=0,src1,src2,...,dest1,dest2,...
        Replace pixels from/to specified colors in selected images.
    -rgb2bayer:
                        _start_pattern=0,_color_grid=0
        Transform selected color images to RGB-Bayer sampled images.
        Default values: 'start_pattern=0' and 'color_grid=0'.
    -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.
    -rgb2hsi8:
        Convert selected images from RGB to HSI8 color bases.
    -rgb2hsl (+):
        Convert selected images from RGB to HSL colorbases.
    -rgb2hsl8:
        Convert selected images from RGB to HSL8 color bases.
    -rgb2hsv (+):
        Convert selected images from RGB to HSV colorbases.
    -rgb2hsv8:
        Convert selected images from RGB to HSV8 color bases.
    -rgb2lab (+):
        Convert selected images from RGB to Lab colorbases.
    -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.
    -rgb2luv:
        Convert selected images from RGB to LUV color bases.
    -rgb2srgb (+):
        Convert selected images from RGB to sRGB colorbases.
    -rgb2xyz:
        Convert selected images from RGB to XYZ colorbases.
        the D65 illuminant is used as the white point).
    -rgb2xyz8:
        Convert selected images from RGB to XYZ8 color bases.
    -rgb2ycbcr:
        Convert selected images from RGB to YCbCr colorbases.
    -rgb2yuv:
        Convert selected images from RGB to YUV colorbases.
    -rgb2yuv8:
        Convert selected images from RGB to YUV8 color bases.
    -remove_opacity:
        Remove opacity channel of selected images.
    -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.
    -srgb2rgb (+):
        Convert selected images from sRGB to RGB colorbases.
    -to_a:
        Force selected images to have an alpha channel.
    -to_color:
        Force selected images to be in color mode (RGB or RGBA).
    -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:
                        _max_step>=0,_is_perceptual_constraint={ 0 | 1 },_bits_depth>0
        Convert selected scalar images ([0-255]-valued) to pseudo-gray color images.
        Default parameters : 'max_step=5', 'is_perceptual_constraint=1' and 'bits_depth=8'.
        The original pseudo-gray technique has been introduced by Rich Franzen [http://r0k.us/graphics/p\
          seudoGrey.html].
        Extension of this technique to arbitrary increments for more tones, has been done by David Tschu\
          mperle.
    -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'.
    -xyz2rgb:
        Convert selected images from XYZ to RGB colorbases.
    -xyz82rgb:
        Convert selected images from XYZ8 to RGB color bases.
    -ycbcr2rgb:
        Convert selected images from YCbCr to RGB colorbases.
    -yuv2rgb:
        Convert selected images from YUV to RGB colorbases.
    -yuv82rgb:
        Convert selected images from YUV8 to RGB color bases.
 ** Geometry manipulation:
    -append (*):
                        [image],axis,_alignment |
                        axis,_alignment
        Append specified image to selected images, or all selected images together, along specified axis\
          .
        (eq. to '-a').
        'axis' can be { x | y | z | c }.
        Usual 'alignment' values are { 0=left-justified | 0.5=centered | 1=right-justified }.
        Default value: 'alignment=0'.
    -append_tiles:
                        _M>=0,_N>=0,0<=_x_alignment<=1,0<=_y_alignment<=1
        Append MxN selected tiles as new images.
        If 'N' is set to 0, number of rows is estimated automatically.
        If 'M' is set to 0, number of columns is estimated automatically.
        If 'M' and 'N' are both set to '0', auto-mode is used.
        If 'M' or 'N' is set to 0, only a single image is produced.
        'x_alignment' and 'y_aligment' tells about the alignment of tiles when they have different sizes\
          .
        Default values: 'M=0', 'N=0', 'x_alignment=y_alignment=0.5'.
    -autocrop (*):
                        value1,value2,... |
                        (no args)
        Autocrop selected images by specified vector-valued intensity.
        If no arguments are provided, cropping value is guessed.
    -autocrop_seq:
                        value1,value2,... | auto
        Autocrop selected images using the crop geometry of the last one by specified vector-valued inte\
          nsity,
        or by automatic guessing the cropping value.
        Default value: auto mode.
    -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'.
    -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'.
    -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,_ax,_ay,_az,_ac |
                        {[image_w] | width>0[%]},_{[image_h] | height>0[%]},_{[image_d] | depth>0[%]},_{\
                        [image_s] | spectrum>0[%]},_interpolation,_boundary,_ax,_ay,_az,_ac |
                        (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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0 or 4'
        (set to '0' by default, must be defined in range [0,1]).
        (noargs) runs interactive mode (uses the instant window [0] if opened).
        Default values: 'interpolation=1', 'boundary=0' and 'ax=ay=az=ac=0'.
    -pow2:
                        _interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images so that each dimension is a power of 2.
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=0', 'boundary=0' and 'ax=ay=az=ac=0'.
    -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'.
    -resize2dx:
                        width>0,_interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images along the x-axis, preserving 2d ratio.
        (eq. to '-r2dx').
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'.
    -resize2dy:
                        height>0,_interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images along the y-axis, preserving 2d ratio.
        (eq. to '-r2dy').
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'.
    -resize3dx:
                        width>0,_interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images along the x-axis, preserving 3d ratio.
        (eq. to '-r3dx').
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'.
    -resize3dy:
                        height>0,_interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images along the y-axis, preserving 3d ratio.
        (eq. to '-r3dy').
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'.
    -resize3dz:
                        depth>0,_interpolation,_boundary,_ax,_ay,_az,_ac
        Resize selected images along the z-axis, preserving 3d ratio.
        (eq. to '-r3dz').
        '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 }.
        'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0'
        (set to '0' by default, must be defined in range [0,1]).
        Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'.
    -rotate (*):
                        angle,_interpolation,_boundary,_cx[%],_cy[%],_zoom
        Rotate selected images with specified angle (in deg.).
        'interpolation' can be { 0=none | 1=linear | 2=bicubic }.
        'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }.
        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'.
    -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'.
    -rows (*):
                        { [image0] | y0[%] },_{ [image1] | y1[%] }
        Keep only specified rows of selected images.
        Dirichlet boundary is used when specified rows are out of range.
    -scale2x:
        Resize selected images using the Scale2x algorithm.
    -scale3x:
        Resize selected images using the Scale3x algorithm.
    -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'.
    -shrink_x:
                        size_x>=0
        Shrink selected images along the x-axis.
    -shrink_xy:
                        size>=0
        Shrink selected images along the xy-axes.
    -shrink_xyz:
                        size>=0
        Shrink selected images along the xyz-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.
    -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 }.
        Default value: 'nb_parts=0'.
    -split_tiles:
                        M!=0,_N!=0,_is_homogeneous={ 0 | 1 }
        Split selected images as a MxN array of tiles.
        If M or N is negative, it stands for the tile size instead.
        Default values: 'N=M' and 'is_homogeneous=0'.
    -unroll (*):
                        axis={ x | y | z | c }
        Unroll selected images along specified axis.
        (eq. to '-y').
    -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\
          '.
    -warp (+):
                        [warping_field],_is_relative={ 0 | 1 },_interpolation,_boundary,_nb_frames>0
        Warp selected image with specified displacement field.
        'interpolation' can be { 0=nearest-neighbor | 1=linear | 2=cubic }.
        'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }.
        Default values: 'is_relative=0', 'interpolation=1', 'boundary=1' and 'nb_frames=1'.
 ** Filtering:
    -bandpass:
                        _min_freq[%],_max_freq[%]
        Apply bandpass filter to selected images.
        Default values: 'min_freq=0' and 'max_freq=20%'.
    -bilateral (+):
                        std_variation_s>0[%],std_variation_r>0
        Blur selected images by anisotropic bilateral filtering.
    -blur (+):
                        std_variation>=0[%],_boundary={ 0=dirichlet | 1=neumann },_kernel={ 0=quasi-gaus\
                        sian (faster) | 1=gaussian }
        Blur selected images by a quasi-gaussian or gaussian filter (recursive implementation).
        (eq. to '-b').
        Default value: 'boundary=1' and 'kernel=0'.
    -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_selective:
                        sigma>=0,_edges>0,_nb_scales>0
        Blur selected images using selective gaussian scales.
        Default values: 'sigma=5', 'edges=0.5' and 'nb_scales=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'.
    -bokeh:
                        _amplitude>=0,_smoothness>=0,0<=_density<=100,_bokeh_size>0,0<=_bokeh_outline_si\
                        ze<=100,_bokeh_outline_amplitude>=0,_bokeh_smoothness>=0
        Create a Bokeh effect from selected images.
        Default values: 'amplitude=200', 'smoothness=2', 'density=0.2', 'bokeh_size=24', 'bokeh_outline_\
          size=10', 'bokeh_outline_amplitude=1' and 'bokeh_smoothness=0.1'.
    -compose_freq:
        Compose selected low and high frequency parts into new images.
    -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'.
    -convolve_fft:
        Convolve selected images two-by-two through fourier transforms.
    -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'.
    -cross_correlation:
        Compute cross-correlation using two-by-two selected images.
    -curvature:
        Compute isophote curvatures on selected images.
    -deblur:
                        amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={ 0=Tikhonov | 1=meancu\
                        rv. | 2=TV }
        Deblur image using a regularized Jansson-Van Cittert algorithm.
        Default values: 'nb_iter=10', 'dt=20', 'regul=0.7' and 'regul_type=1'.
    -deblur_goldmeinel:
                        sigma>=0, _nb_iter>=0, _acceleration>=0, _kernel_type={ 0=quasi-gaussian (faster\
                        ) | 1=gaussian }.
        Deblur selected images using Gold-Meinel algorithm
        Default values: 'nb_iter=8', 'acceleration=1' and 'kernel_type=1'.
    -deblur_richardsonlucy:
                        sigma>=0, nb_iter>=0, _kernel_type={ 0=quasi-gaussian (faster) | 1=gaussian }.
        Deblur selected images using Richardson-Lucy algorithm.
        Default values: 'nb_iter=50' and 'kernel_type=1'.
    -deconvolve_fft:
        Deconvolve selected images two-by-two through fourier transforms.
    -deinterlace:
                        _method={ 0 | 1 }
        Deinterlace selected images ('method' can be { 0=standard or 1=motion-compensated }).
        Default value: 'method=0'.
    -denoise (+):
                        std_variation_s>=0,_std_variation_p>=0,_patch_size>=0,_lookup_size>=0,_smoothnes\
                        s,_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'.
    -denoise_haar:
                        _threshold>=0,_nb_scales>=0,_cycle_spinning>0
        Denoise selected image using haar-wavelet thresholding with cycle spinning.
        Set 'nb_scales==0' to automatically determine the optimal number of scales.
        Default values: 'threshold=1.4', 'nb_scale=0' and 'cycle_spinning=10'.
    -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'.
    -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%'.
    -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'.
    -edges:
                        _threshold[%]>=0
        Estimate contours of selected images.
        Default value: 'edges=15%'
    -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'.
    -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'.
    -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=deriche | 5=vanvliet }.
        (no args) compute all significant 2d/3d components.
        Default value: 'scheme=3'.
    -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.
    -haar:
                        scale>0
        Compute the direct haar multiscale wavelet transform 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'.
    -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.
    -iee:
        Compute gradient-orthogonal-directed 2nd derivative of image(s).
    -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.
    -inn:
        Compute gradient-directed 2nd derivative of image(s).
    -inpaint (+):
                        [mask]
        Inpaint selected images by specified mask.
    -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
        Render LIC representation of selected vector fields.
        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'.
    -median (+):
                        radius>=0
        Apply median filter of specified radius on selected images.
    -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' an\
          d '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'.
    -repair (+):
                        [mask],_patch_size>=1,_lookup_size>=1,_lookup_increment>=1,_blend_size>=0,0<=_bl\
                        end_threshold<=1,_blend_decay>=0,_blend_scales>=1,_is_blend_outer={ 0 | 1 }
        Repair masked image pixels in selected images, by patch-based inpainting.
        Beware, this is a very time consuming command.
        Default values : 'patch_size=11', 'lookup_size=22', 'lookup_increment=1', 'blend_size=0', 'blend\
          _threshold=0', 'blend_decay=0.05', 'blend_scales=10' and 'is_blend_outer=0'.
    -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,in\
                        terpolation,_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_appro\
                        x={ 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'.
    -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'.
    -solve_poisson:
        Solve Poisson equation so that applying '-laplacian[n]' is close to the result of '-laplacian_co\
          mmand[n]'.
        Solving is performed using a multi-scale gradient descent algorithm.
        If 'nb_scales=0', the number of scales is automatically determined.
        Default values: 'nb_iterations=60', 'dt=5' and 'nb_scales=0'.
    -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'.
    -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'.
    -vanvliet (+):
                        std_variation>=0[%],order={ 0 | 1 | 2 | 3 },axis={ x | y | z | c },_boundary
        Apply Vanvliet 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'.
    -watermark_fourier:
                        text,_size>0
        Add a textual watermark in the frequency domain of selected images.
        Default value: 'size=32'.
    -watershed (+):
                        [priority_image],_fill_lines={ 0 | 1 }
        Compute the watershed transform of selected images.
        Default value: 'fill_lines=1'.
 ** 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'.
    -barycenter:
        Compute the barycenter vector of pixel values.
    -displacement (+):
                        [source_image],_smoothness,_precision>=0,_nb_scales>=0,iteration_max>=0,is_backw\
                        ard={ 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_ba\
          ckward=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
        Default value: 'metric=2'.
    -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 (+):
                        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%'.
    -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'.
    -histogram_pointwise:
                        nb_levels>0[%],_value0[%],_value1[%]
        Compute the histogram of each vector-valued point of selected images.
        If value range is set, the histogram is estimated only for values in the specified
        value range.
        Default values: 'value0=0%' and 'value1=100%'.
    -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 (+):
                        tolerance>=0,is_high_connectivity={ 0 | 1 }
        Label connected components in selected images.
        Default values: 'tolerance=0' and 'is_high_connectivity=0'.
    -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.
    -mse (*):
        Compute MSE (Mean-Squared Error) matrix between selected images.
    -patches:
                        patch_width>0,patch_height>0,patch_depth>0,x0,y0,z0,_x1,_y1,_z1,...,_xN,_yN,_zN
        Extract N+1 patches from selected images, centered at specified locations.
    -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'.
    -psnr (+):
                        _max_value
        Compute PSNR (Peak Signal-to-Noise Ratio) matrix between selected images.
        Default value: 'max_value=255'.
    -segment_watershed:
                        _threshold>=0,_fill_lines={ 0 | 1 }
        Apply watershed segmentation on selected images.
        Default values: 'threshold=2' and 'fill_lines=1'.
    -skeleton:
                        _smoothness[%]>=0
        Compute skeleton of binary shapes using distance transform.
        Default value: 'smoothness=0'.
    -ssd_patch:
                        _use_fourier={ 0 | 1 },_boundary_conditions={ 0=dirichlet | 1=neumann }
        Compute field of SSD between an image and a patch, taken as consecutive selected images.
        Argument 'boundary_conditions' is valid only when 'use_fourier=0'.
        Default value: 'use_fourier=0' and 'boundary_conditions=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:
    -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'.
    -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 'colo\
          r2=255'.
    -cie1931:
        Draw CIE-1931 chromaticity diagram on selected images.
    -circle:
                        x[%],y[%],R[%],_opacity,_pattern,_color1,..
        Draw specified colored circle on selected images.
        A radius of '100%' stands for 'sqrt(width^2+height^2)'.
        'pattern' is an hexadecimal number starting with '0x' which can be omitted
        even if a color is specified. If a pattern is specified, the circle is
        drawn outlined instead of filled.
        Default values: '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^2+height^2)'.
        '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'.
    -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'.
    -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=(und\
          efined)'
        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'.
    -marble:
                        _image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_al\
                        pha,_sigma,_cut_low>=0,_cut_high>=0
        Render marble like pattern on selected images.
        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
        Input maze with specified size.
    -maze_mask:
                        _cellsize>0
        Input maze according to size and shape of selected mask images.
        Mask may contain disconnected shapes.
    -object3d (+):
                        [object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double3d={ 0 | 1 },_is_zb\
                        uffer={ 0 | 1 },_focale,_light_x,_light_y,_light_z,_specular_lightness,_specular\
                        _shininess
        Draw specified 3d object on selected images.
        'rendering_mode' can be { 0=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=p\
          hong-shaded }.
        Default values: 'x=y=z=0', 'opacity=1' and 'is_zbuffer=1'. All other arguments take their defaul\
          t values from the 3d environment variables.
    -pack_sprites:
                        _nb_scales>=0,0<=_min_scale<=100,_allow_rotation={ 0=0° | 1=180° | 2=90° | 3=\
                        any },_spacing,_precision>=0,,max_iterations>=0
        Try to randomly pack as much sprites as possible onto the 'empty' areas of an image.
        Sprites can be eventually rotated and scaled during the packing process.
        First selected image is the canvas that will be filled with the sprites.
        Its last channel must be a binary mask whose zero values represent potential locations for drawi\
          ng the sprites.
        All other selected images represent the sprites considered for packing.
        Their last channel must be a binary mask that represents the sprite shape (i.e. a 8-connected co\
          mponent).
        The order of sprite packing follows the order of specified sprites in the image list.
        Sprite packing is done on random locations and iteratively with decreasing scales.
        'nb_scales' sets the number of decreasing scales considered for all specified sprites to be pack\
          ed.
        'min_scale' (in %) sets the minimal size considered for packing (specified as a percentage of th\
          e original sprite size).
        'spacing' can be positive or negative.
        'precision' tells about the desired number of failed trials before ending the filling process.
        Default values: 'nb_scales=5', 'min_scale=25', 'allow_rotation=3', 'spacing=1', 'precision=7' an\
          d 'max_iterations=256'.
    -piechart:
                        label_height>=0,label_R,label_G,label_B,
                        lueN,RN,GN,BN
        Draw pie chart on selected (RGB) images.
    -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'.
    -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', 'opac\
          ity=1' and 'color=255'.
    -polygon (+):
                        N>=1,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,_colo\
                        r1,..
        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'.
    -rectangle:
                        x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,..
        Draw specified colored rectangle 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 rectangle is
        drawn outlined instead of filled.
        Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'.
    -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'.
    -spiralbw:
        Draw (squared) spiral on selected images.
    -spline:
                        x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_nb_vertices>=2,_opacity,_color1\
                        ,..
        Draw specified colored spline curve on selected images.
        Default values: 'nb_vertices=256', 'opacity=1' and 'color1=0'.
    -text (+):
                        text,_x[%],_y[%],_font_height>=0,_opacity,_color1,..
        Draw specified colored text string on selected images.
        (eq. to '-t').
        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'.
    -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}
        Render fractal noise or turbulence on selected images.
        Default values: 'radius=32', 'octaves=6', 'alpha=3', 'difference=0' and 'mode=0'.
    -yinyang:
        Draw a yin-yang symbol on selected images.
 ** 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 mat\
          rices,
        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.
    -transpose:
        Transpose 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'.
    -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'.
    -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.
    -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'.
    -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.
    -color3d (+):
                        R,_G,_B,_opacity
        Set color and opacity of selected 3d objects.
        (eq. to '-col3d').
        Default value: 'opacity=(undefined)'.
    -colorcube3d:
        Input 3d color 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
        Input 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:
        Get 3d color distribution of selected images.
    -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 (+):
                        z-factor |
                        [elevation_map] |
                        'formula' |
                        (no args)
        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 nor\
          m of the
        pixel values. Otherwise, the elevation map is taken from the specified image or formula.
    -empty3d:
        Input empty 3d object.
    -extrude3d:
                        _depth>0,_resolution>0,_smoothness[%]>=0
        Generate extruded 3d object from selected binary XY-profiles.
        Default values: 'depth=16', 'resolution=1024' and 'smoothness=0.5%'.
    -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.
        Default value: 'focale=700'.
    -gaussians3d:
                        _size>0,_opacity
        Convert selected 3d objects into set of 3d gaussian-shaped sprites.
    -gmic3d:
        Input a 3d G'MIC logo.
    -gyroid3d:
                        _resolution>0,_zoom
        Input 3d gyroid at (0,0,0), with specified resolution.
        Default values: 'resolution=32' and 'zoom=5'.
    -histogram3d:
        Get 3d color histogram of selected images.
    -image6cube3d:
        Generate 3d mapped cubes from 6-sets of 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'.
    -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'.
    -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'.
    -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.
    -line3d:
                        x0,y0,z0,x1,y1,z1
        Input 3d line at specified coordinates.
    -lissajous3d:
                        resolution>1,a,A,b,B,c,C
        Input 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'.
    -mode3d (+):
                        mode
        Set static 3d rendering mode.
        (eq. to '-m3d').
        'mode' can be { -1=bounding-box | 0=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shad\
          ed | 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=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shad\
          ed | 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'.
    -normalize3d:
        Normalize selected 3d objects to unit size.
        (eq. to '-n3d').
    -opacity3d (+):
                        opacity
        Set opacity of selected 3d objects.
        (eq. to '-o3d').
    -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,_isovalue>=0
        Input 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 'isova\
          lue=10%'.
    -pca_patch3d:
                        _patch_size>0,_M>0,_N>0,_normalize_input={ 0 | 1 },_normalize_output={ 0 | 1 },_\
                        lambda_xy
        Get 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 3\
          d points.
        Default values: 'patch_size=7', 'M=1000', 'N=3000', 'normalize_input=1', 'normalize_output=0', a\
          nd '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:
        Convert selected planar or volumetric images to 3d point clouds.
    -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 }.
    -projections3d:
                        _x[%],_y[%],_z[%],_is_bounding_box={ 0 | 1 }
        Generate 3d xy,xz,yz projection planes from specified volumetric images.
    -pyramid3d:
                        width,height
        Input 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.
    -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').
    -rotation3d:
                        u,v,w,angle
        Input 3x3 rotation matrix with specified axis and angle (in deg).
    -sierpinski3d:
                        _recursion_level>=0,_width,_height
        Input 3d Sierpinski pyramid.
    -snapshot3d:
                        _size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB
        Take 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)'.
    -specl3d (+):
                        value>=0
        Set lightness 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'.
    -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=
          )
    -spline3d:
                        x0[%],y0[%],z0[%],u0[%],v0[%],w0[%],x1[%],y1[%],z1[%],u1[%],v1[%],w1[%],_nb_vert\
                        ices>=2
        Input 3d spline with specified geometry.
        Default values: 'nb_vertices=128'.
    -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.
    -sprite3d:
        Convert selected images as 3d sprites.
        Selected image with alpha channels are managed.
    -sprites3d:
        Convert selected 3d objects as sprites clouds, where the specified 2d sprite is the last selecte\
          d image.
        If the selected sprite has a 4th channel, it stands for the sprite alpha-channel (in [0,255]).
    -star3d:
                        nb_branches>0,0<=thickness<=1
        Input 3d star at (0,0,0), with specified geometry.
        Default values: 'nb_branches=5' and 'thickness=0.38'.
    -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'.
    -superformula3d:
                        resolution>1,m>=1,n1,n2,n3
        Input 2d superformula curve as a 3d object.
        Default values: 'resolution=1024', 'm=8', 'n1=1', 'n2=5' and 'n3=8'.
    -text_pointcloud3d:
                        _
        Input 3d text pointcloud from the two specified strings.
        Default values: 'text1=
    -text3d:
                        text,_font_height>0,_depth>0,_smoothness
        Input a 3d text object from specified text.
        Default values: 'font_height=57', 'depth=10' and 'smoothness=1.5'.
    -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)'.
    -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.
    -volume3d:
        Transform selected 3d volumetric images as 3d parallelepipedic objects.
    -weird3d:
                        _resolution>0
        Input 3d weird object at (0,0,0), with specified resolution.
        Default value: 'resolution=32'.
 ** 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 (*):
        Go to end of current block 'repeat..done', 'do..while' or 'local..endlocal'.
    -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 error (stderr) 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' blo\
          ck.
        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.
    -rprogress:
                        0<=value<=100 | -1 |
        Set the progress indice of the current processing pipeline (relatively to
        previously defined progress bounds), or call the specified command with
        specified progress bounds.
    -skip (*):
                        item
        Do nothing but skip specified item.
    -status (*):
                        value
        Set current status value. Used to define a returning value in a function.
        (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 }.
 ** Arrays, tiles and frames:
    -array:
                        M>0,_N>0,_expand_type={0=min | 1=max | 2=all}
        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=min | 1=max | 2=a\
                        ll}
        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_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_blur:
                        _sharpness>0,_size>=0,_smoothness,_shading,_blur
        Draw RGBA-colored round frame in selected images.
        Default values: 'sharpness=10', 'size=30', 'smoothness=0', 'shading=1' and 'blur=3%'.
    -frame_cube:
                        _depth>=0,_x_center,_y_center,_left_side={0=normal | 1=mirror-x | 2=mirror-y | 3\
                        =mirror-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_contrast>=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_contrast=400', 'defects_contrast=50', 'defects_density=10', 'defec\
          ts_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', 'shading=0' and 'R=G=B=A=255'.
    -frame_x:
                        size_x[%]>=0,_col1,...,_colN
        Insert colored frame along the x-axis in selected images.
        Default values: 'col1=col2=col3=255' and 'col4=255'.
    -frame_xy:
                        size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN
        Insert colored frame along the x-axis in selected images.
        Default values: 'size_y=size_x', 'col1=col2=col3=255' and 'col4=255'.
        (eq. to '-frame').
    -frame_xyz:
                        size_x[%]>=0,_size_y[%]>=0,_size_z[%]>=0_col1,...,_colN
        Insert colored frame along the x-axis in selected images.
        Default values: 'size_y=size_x=size_z', 'col1=col2=col3=255' and 'col4=255'.
    -frame_y:
                        size_y[%]>=0,_col1,...,_colN
        Insert colored frame along the y-axis in selected images.
        Default values: 'col1=col2=col3=255' and 'col4=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,_angle
        Apply tunnel effect on selected images.
        Default values: 'level=9', 'factor=80%', 'cx=cy=0.5', 'opacity=1' and 'angle=0'
 ** Artistic:
    -boxfitting:
                        _min_box_size>=1,_max_box_size>=0,_initial_density>=0,_nb_attempts>=1
        Apply box fitting effect on selected images, as displayed the web page:
        [http://www.complexification.net/gallery/machines/boxFittingImg/]
        Default values: 'min_box_size=1', 'max_box_size=0', 'initial_density=0.1' and 'nb_tries=3'.
    -cartoon:
                        _smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0
        Apply cartoon effect on selected images.
        Default values: 'smoothness=3', 'sharpening=150', 'threshold=20', 'thickness=0.25', 'color=1.5' \
          and 'quantization=8'.
    -circlism:
                        _radius_min>0,_radius_max>0,_smoothness[%]>=0,_radius_linearity>=0,_location_lin\
                        earity>=0,_shape={0=squares | 1=diamonds | 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', 'locati\
          on_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:
                        _density>=0,0<=_thickness<=50,_max_angle,_opacity,_smoothness>=0
        Apply cubism effect on selected images.
        Default values: 'density=50', 'thickness=10', 'max_angle=75', 'opacity=0.7' and 'smoothness=0'.
    -dotsbw:
                        _nb_scales>0,0<=_resolution<=100,_radius_factor>=0
        Apply B&W dots effect on selected images.
        Default values: 'nb_scales=16', 'resolution=10' and 'radius_factor=1'.
    -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[%]>=0,0<=_curvature<=1,_expand_size={ 0 | \
                        1 }
        Drop shadow behind selected images.
        Default values: 'offset_x=20', 'offset_y=offset_x', 'smoothness=5', 'curvature=0' and 'expand_si\
          ze=1'.
    -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%'.
    -halftone:
                        nb_levels>=2,_size_dark>=2,_size_bright>=2,_shape={ 0=square | 1=diamond | 2=cir\
                        cle | 3=inv-square | 4=inv-diamond | 5=inv-circle },_smoothness[%]>=0
        Apply halftone dithering to selected images.
        Default values: 'nb_levels=5', 'size_dark=8', 'size_bright=8', 'shape=5' and 'smoothnesss=0'.
    -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_lightness,_specular_size,_light_smoothness,_darkness,_x\
                        l,_yl,_zl,_zscale,_opacity_bumpmap={ 0 | 1 }
        Apply relief light to selected images.
        Default values(s) : 'ambient_light=0.3', 'specular_lightness=0.5', 'specular_size=0.2', 'darknes\
          s=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.
        Default values: 'size1=10' and 'size2=20'.
    -poster_edges:
                        0<=_edge_threshold<=100,0<=_edge_shade<=100,_edge_thickness>=0,_edge_antialiasin\
                        g>=0,0<=_posterization_level<=15,_posterization_antialiasing>=0
        Apply poster edges effect on selected images.
        Default values: 'edge_threshold=40', 'edge_shade=5', 'edge_thickness=0.5', 'edge_antialiasing=10\
          ', 'posterization_level=12' and 'posterization_antialiasing=0'.
    -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'.
    -stars:
                        _density[%]>=0,_depth>=0,_size>0,_nb_branches>=1,0<=_thickness<=1,_smoothness[%]\
                        >=0,_R,_G,_B,_opacity
        Add random stars to selected images.
        Default values: 'density=10%', 'depth=1', 'size=32', 'nb_branches=5', 'thickness=0.38', 'smoothn\
          ess=0.5', 'R=G=B=200' and 'opacity=1'.
    -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'.
    -weave:
                        _density>=0,0<=_thickness<=100,0<=_shadow<=100,_shading>=0,_fibers_amplitude>=0,\
                        _fibers_smoothness>=0,_angle,-1<=_x_curvature<=1,-1<=_y_curvature<=1
        Apply weave effect to the selected images.
        'angle' can be { 0=0° | 1=22.5° | 2=45° | 3=67.5° }.
        Default values: 'density=6', 'thickness=65', 'shadow=40', 'shading=0.5', 'fibers_amplitude=0', '\
          fibers_smoothness=0', 'angle=0' and 'curvature_x=curvature_y=0'
    -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=ne\
                        umann | 2=cyclic }
        Apply flower deformation on selected images.
        Default values: 'amplitude=30', 'frequency=6', 'offset_r=0', 'angle=0', 'cx=cy=0.5' and 'boundar\
          y=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'.
    -raindrops:
                        _amplitude,_density>=0,_wavelength>=0,_merging_steps>=0
        Apply raindrops deformation on selected images.
        Default values : 'amplitude=80','density=0.1', 'wavelength=1' and 'merging_steps=0'.
    -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=cycli\
                        c }
        Create rotational kaleidoscope effect from selected images.
        Default values: 'cx=cy=50%', 'tiles=10', 'smoothness=1' and 'boundary=1'.
    -symmetrize:
                        _x[%],_y[%],_angle,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic },_is_antisymm\
                        etry={ 0 | 1 },_swap_sides={ 0 | 1 }
        Symmetrize selected image regarding specified axis.
        Default values: 'x=y=50%', 'angle=90', 'boundary=1', 'is_antisymmetry=0' and 'swap_sides=0'.
    -transform_polar:
                        ann }
        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=neuman\
                        n | 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.
    -vignette:
                        _strength>=0,0<=_radius_min<=100,0<=_radius_max<=100
        Add vignette effect to selected images.
        Default values: 'strength=100', 'radius_min=70' and 'radius_max=90'.
    -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:
    -blend:
                        blending_mode,0<=_opacity<=1,_revert_layer_order={ 0 | 1 }
        Blend selected G,GA,RGB or RGBA images, two-by-two, using specified mode.
        'blending_mode' can be { add | alpha | and | average | blue | burn | darken | difference |
        divide | dodge | exclusion | freeze | grainextract | grainmerge | green | hardlight |
        hardmix | hue | interpolation | lighten | lightness | linearburn | linearlight | luminance |
        multiply | negation | or | overlay | pinlight | red | reflect | saturation |
        screen | shapeaverage | shapeaverage0 | softburn | softdodge | softlight | stamp | subtract | va\
          lue |
        vividlight | xor }.
        Default values: 'blending_mode=alpha', 'opacity=1' and 'revert_layers=0'.
    -blend_edges:
                        smoothness[%]>=0
        Blend selected images togethers using 'edges' mode.
    -blend_fade:
        Blend selected images togethers using a given fading pattern (defined as the latest image).
    -blend_median:
        Blend selected images together using 'median' 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,
                        =0,_output_frames={ 0 | 1 },_output_filename |
                        delay>0
        Animate filter from starting parameters to ending parameters or animate selected images
        in a display window.
        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'.
    -transition_plasma:
                        _nb_frames>=2,_scale>=0,_smoothness[%]>=0
        Create plasma transition sequence between consecutive images.
        Default values: 'nb_frames=10', 'scale=5' and 'smoothness=0.5%'.
    -transition3d:
                        _nb_frames>=2,_nb_xtiles>0,_nb_ytiles>0,_axis_x,_axis_y,_axis_z,_is_antialias
        Create 3d transition sequence between selected consecutive images.
        'axis_x', 'axis_y' and 'axis_z' can be set as mathematical expressions, depending on 'x' and 'y'\
          .
        Default values: 'nb_frames=10', 'nb_xtiles=nb_ytiles=3', 'axis_x=1', 'axis_y=1', 'axis_z=0' and \
          'is_antialias=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_pacman:
        Launch pacman game.
    -x_paint:
        Launch the interactive painter.
    -x_plasma:
        Launch the plasma demo.
    -x_quantize_rgb:
                        _nbcolors>=2
        Launch RGB colors quantization 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_tetris:
        Launch tetris game.
    -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:
    -alert:
                        _title,_message,_label_button1,_label_button2,...
        Display an alert box and wait for user's choice.
        If a single image is in the selection, it is used as an icon for the alert box.
        Default values: 'title=[G'MIC Alert]' and 'message=This is an alert box.'.
    -arg:
                        n,_arg1,...,_argN
        Return the n-th argument of the specified argument list.
        'n' can be an expression.
    -at:
                        _x,_y,_z
        Return a specified vector-valued point (x,y,z) from the latest of the selected images.
    -autocrop_coords:
                        value1,value2,... | auto
        Return coordinates (x0,y0,z0,x1,y1,z1) of the autocrop that could be performed on the latest of \
          the selected images.
        Default value: 'auto'
    -average_color:
        Return the average color of 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 representation\
          s.
    -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 representation\
          s.
    -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 specifie\
          d w/h ratio.
    -fitscreen:
                        width,height,_depth
        Return the 'ideal' size WxH for a window intended to display an image of specified size on scree\
          n.
    -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 representation\
          s.
    -hex2dec:
                        hexadecimal_int1,...
        Convert specified hexadecimal integers into their decimal representations.
    -hex2str:
                        hexadecimal_string
        Convert specified hexadecimal string into a string.
    -img2str:
        Return the content of the latest of the selected image as a special G'MIC input string.
    -img2text:
                        _line_separator
        Return text contained in a multi-line image.
        Default value: 'line_separator= '.
    -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.
    -mad:
        Return the MAD (Maximum Absolute Deviation) of the last selected image.
        The MAD is defined as MAD = med_i|x_i-med_j(x_j)|
    -max_w:
        Return the maximal width between selected images.
    -max_h:
        Return the maximal height between selected images.
    -max_d:
        Return the maximal depth between selected images.
    -max_s:
        Return the maximal spectrum between 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.
    -med:
        Return the median value of the last selected image.
    -min_w:
        Return the minimal width between selected images.
    -min_h:
        Return the minimal height between selected images.
    -min_d:
        Return the minimal depth between 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 representation\
          s.
    -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
    -region_feature:
                        region_label,feature,_default_value
        Return feature for a specified region.
        This function requires two images [img,region_label] in the selection.
        Argument 'feature' is a string that corresponds to the way the feature would
        be asked for the entire image.
        Default value: 'default_value=0'.
    -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'.
    -variance_noise:
        Return the estimated noise variance of the last selected image.
 ** Others:
    -gpt:
                        _scorefile,_number_of_sessions>=0
        Generate score board for the GPT championship (GREYC Poker Tour).
 ** Commands shortcuts:
    -h (*): eq. to '-help'.
    -m (*): eq. to '-command'.
    -d (+): eq. to '-display'.
    -d0 : eq. to '-display0'.
    -d3d (+): eq. to '-display3d'.
    -da : eq. to '-display_array'.
    -dfft : eq. to '-display_fft'.
    -dg : eq. to '-display_graph'.
    -dh : eq. to '-display_histogram'.
    -dp : eq. to '-display_polar'.
    -drgba : eq. to '-display_rgba'.
    -dt : eq. to '-display_tensors'.
    -dw : eq. to '-display_warp'.
    -e (*): eq. to '-echo'.
    -i (*): eq. to '-input'.
    -o (*): eq. to '-output'.
    -on : eq. to '-outputn'.
    -op : eq. to '-outputp'.
    -ow : eq. to '-outputw'.
    -p (*): eq. to '-print'.
    -sh (*): eq. to '-shared'.
    -up : eq. to '-update'.
    -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'.
    -t2 : eq. to '-threshold2'.
    -fc : eq. to '-fill_color'.
    -a (*): eq. to '-append'.
    -z (*): eq. to '-crop'.
    -r (*): eq. to '-resize'.
    -rr2d : eq. to '-resize_ratio2d'.
    -r2dx : eq. to '-resize2dx'.
    -r2dy : eq. to '-resize2dy'.
    -r3dx : eq. to '-resize3dx'.
    -r3dy : eq. to '-resize3dy'.
    -r3dz : eq. to '-resize3dz'.
    -s (*): eq. to '-split'.
    -y (*): eq. to '-unroll'.
    -b (+): eq. to '-blur'.
    -g (+): eq. to '-gradient'.
    -j (+): eq. to '-image'.
    -t (+): eq. to '-text'.
    -+3d (+): eq. to '-add3d'.
    -b3d (+): eq. to '-background3d'.
    -c3d : eq. to '-center3d'.
    -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'.
    -n3d : eq. to '-normalize3d'.
    -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'.
    -x (*): eq. to '-exec'.
    -l (*): eq. to '-local'.
    -q (*): eq. to '-quit'.
    -u (*): eq. to '-status'.
    -frame : eq. to '-frame_xy'.
   [ Total number of commands: 796 ]
 13. 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 layer blending:
     gmic image1.jpg image2.jpg -blend overlay -o blended.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 \

  - 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 -x_tetris
 ** G'MIC comes with ABSOLUTELY NO WARRANTY; for details visit http://gmic.sourceforge.net **