Scroll to navigation

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

NAME

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

HELP


gmic : GREYC´s Magic Image Converter (Jun 21 2012, 18:34:55).
 

Version 1.5.1.6, Copyright (C) 2008-2012, David Tschumperle
(http://gmic.sourceforge.net)
 

Usage
-----
 

gmic [command1 [arg1_1,arg1_2,..]] .. [commandN [argN_1,argN_2,..]]
 

´gmic´ is an open-source interpreter of the G´MIC language, a script-based programming
language dedicated to the design of image processing pipelines. It can be used to
convert, manipulate, filter and visualize datasets made of one or several 1d/2d or 3d
multi-spectral images.
 

Here you will find a complete description of the G´MIC language basics and rules.
 

** Overall context :
 

- At any time, G´MIC manages one list of numbered (and optionally named) pixel-based
images, entirely stored in computer memory.
- The first image of the list has indice ´0´ and is denoted by ´[0]´. The second image of
the list is denoted by ´[1]´, the third by ´[2]´ and so on.
- Negative indices are treated in a cyclic way : ´[-1]´ refers to the last image of the
list, ´[-2]´ to the penultimate one, etc. Thus, if the list has 4 images, expressions
´[1]´ and ´[-3]´ both designates the second image of the list.
- A named image may be denoted by ´[name]´ if ´name´ uses characters set [a-zA-Z0-9_] and
does not start with a number. Image names can be set or reassigned at any moment during
the processing pipeline (see commands ´-name´ and ´-input´).
- G´MIC defines a set of various commands and substitution mechanisms to allow the design
of complex pipelines managing this list of images, in a very flexible way :
You can insert or remove images in the list, rearrange image indices, process images
(individually or as a group), merge image data together and output image files.
- Such a pipeline can be written itself as a custom G´MIC command storable in a custom
commands file, which can be re-used afterwards in another bigger pipeline if necessary.
 

** Image definition and terminology :
 

- In G´MIC, an image is modeled as a 1d, 2d, 3d or 4d array of scalar values, uniformly
discretized on a rectangular/parallelepipedic domain.
- The four dimensions of these arrays are respectively denoted by :
. ´width´, the number of image columns (size along the ´x´-axis).
. ´height´, the number of image rows (size along the ´y´-axis).
. ´depth´, the number of image slices (size along the ´z´-axis).
The depth is equal to 1 for usual 2d color or grayscale images.
. ´spectrum´, the number of image channels (size along the ´c´-axis).
The spectrum is respectively equal to 3 and 4 for usual RGB and RGBA color images.
- There are no size limitations on each image dimensions. Particularly, the number of image
slices or channels can be of arbitrary size within the limits of available memory.
- The width, height and depth of an image are considered as ´spatial´ dimensions, while the
spectrum has a ´multi-spectral´ meaning. Thus, a 4d image in G´MIC should be most often
regarded as a 3d dataset of multi-spectral voxels. Most of the G´MIC commands will stick
with this idea (e.g. command ´-blur´ will blur images only along the ´xyz´ axes).
- All pixel values of all images of the list have the same datatype. It can be one among :
. ´bool´ : Stands for ´boolean´. Value range is { 0=false | 1=true }.
. ´uchar´ : Stands for ´unsigned char´. Value range is [0,255] (8bits).
This type of pixel coding is commonly used to store 8bits/channels RGB[A] images.
. ´char´ : Value range is [-128,127] (8bits).
. ´ushort´ : Stands for ´unsigned short´. Value range is [0,65535] (16bits).
This type of pixel coding is commonly used to store 16bits/channels RGB[A] images.
. ´short´ : Value range is [-32768,32767] (16bits).
. ´uint´ : Stands for ´unsigned int´. Value range is [0,2^32-1] (32bits).
. ´int´ : Value range is [-2^31,2^31-1] (32 bits).
. ´float´ : Value range is [-3.4E38,+3.4E38] (32bits).
This type of coding is able to store pixels as 32 bits float-valued numbers. This is
the default datatype used by G´MIC image processing operations.
. ´double´ : Value range is [-1.7E308,1.7E308] (64bits).
This type of coding is able to store pixels as 64 bits float-valued numbers.
- Considering pixel datatypes different than ´float´ is generally useless, except to force
the input/output of image data to a prescribed binary format. Hence, most G´MIC image
image processing commands are available only for the default ´float´ pixel datatype
(see command ´-type´ if you need to switch to another pixel datatype).
 

** Items of a processing pipeline :
 

- In G´MIC, an image processing pipeline is described as a sequence of items separated by
the space character ´ ´. Such items are interpreted and executed from the left to the
right. For instance, the expression :
´input.jpg -blur 3,0 -sharpen 10 -resize 200%,200% -output output.jpg´
defines a valid pipeline composed of nine G´MIC items.
- A G´MIC item is a string which represents either a command, a set of command arguments,
a filename, or a special input string.
- Escape characters ´\' and double quotes ´
containing spaces, or any other character sequences. For instance, the strings
´single item´ and ´
 

** Input data items :
 

- If a specified G´MIC item appears to be an existing filename, the corresponding image
data are loaded and inserted at the end of the image list.
- Special filenames ´-´ and ´-.ext´ stand for the standard input/output streams, optionally
forced to be in a specific ´ext´ file format (e.g. ´-.jpg´ or ´-.png´).
- The following special input strings may be used as G´MIC items to create and insert new
images with prescribed values, at the end of the image list :
. ´[selection]´ or ´[selection]xN´ : Insert 1 or N copies of selected existing images.
´selection´ may contain one or several images (see next section for details).
. ´width[%],_height[%],_depth[%],_spectrum[%],_values´ : Insert a new image with
specified size and values (adding ´%´ to a dimension means ´percentage of the size
along the same axis, taken from the last image ´[-1]´´). Any specified dimension
can be also written as ´[image]´, and is then set to the size (along the same axis)
of the existing specified image [image]. ´values´ can be either a sequence of numbers
separated by commas ´,´, or a mathematical expression, as e.g. in input item
´256,256,1,3,if(c==0,x,if(c==1,y,0))´ which creates a 256x256 RGB color image with a
spatial shading on the red and green channels.
. ´(v1,v2,..)´ : Insert a new image from specified prescribed values.
Value separator inside parentheses can be ´,´ (column separator.), ´;´ (row sep.),
´/´ (slice sep.) or ´^´ (channel sep.). For instance, expression
´(1,2,3;4,5,6;7,8,9)´ creates a 3x3 matrix (scalar image), with values from 1 to 9.
. ´0´ : Insert a new ´empty´ image, containing no pixel data. Empty images are used only
in rare occasions.
- Input item ´name=value´ declares a new local or global variable ´name´, or assign a new
value to an existing variable. Variable names use characters set [a-zA-Z0-9_] and cannot
start with a number. A variable definition is always local to the current command except
when it starts by the underscore character ´_´. In that case, it becomes also accessible
by any command invoked outside the current command scope.
 

** Command items and selections :
 

- A G´MIC item starting by ´-´ designates a command, most of the time. Generally, commands
perform image processing operations on one or several available images of the list.
- Common commands have two equivalent names (regular and short). For instance, command
names ´-resize´ and ´-r´ refer to the same image resizing action.
- A G´MIC command may have mandatory or optional arguments. Command arguments must be
specified in the next item on the command line. Commas ´,´ are used to separate multiple
arguments, if any required.
- The execution of a G´MIC command may be restricted only to a subset of the image list, by
appending ´[subset]´ to the command name. Examples of valid syntaxes for ´subset´ are:
. ´-com[0,1,3]´ : Apply command only on images [0],[1] and [3].
. ´-com[3-5]´ : Apply command only on images [3] to [5] (i.e, [3],[4] and [5]).
. ´-com[50%-100%]´ : Apply command only on the second half of the image list.
. ´-com[0,-4--1]´ : Apply command only on the first and the four latest images.
. ´-com[0-9:3]´ : Apply command only on images [0] to [9], with a step of 3
(i.e. on images [0], [3], [6] and [9]).
. ´-com[0--1:2]´ : Apply command only on images of the list with even indices.
. ´-com[0,2-4,50%--1]´ : Apply command on images [0],[2],[3],[4] and on the second half
of the image list.
. ´-com[^0,1]´ : Apply command on all images except the first two.
. ´-com[name1,name2]´ : Apply command on named images ´name1´ and ´name2´.
- Indices in selections are always sorted in increasing order, and duplicate indices are
discarded. For instance, selections ´[3-1,1-3]´ and ´[1,1,1,3,2]´ are both equivalent to
´[1-3]´. If you want to repeat a single command multiple times on an image, use a
´-repeat..-done´ loop. Inverting the order of images in a selection can be achieved by
inverting first the order of the images in the list, with command ´-reverse[selection]´.
- G´MIC commands invoked without ´[subset]´ are applied on all images of the list.
- A G´MIC command starting with ´--´ instead of ´-´ does not act ´in-place´ but inserts its
result as one or several new images at the end of the image list.
- There are two different types of commands that can be run by the G´MIC interpreter :
. Native commands, are hard-coded functionalities in the interpreter core.
They are thus compiled as machine code and run quickly, most of the time.
Omitting an argument when invoking a native command is not permitted, except if all
following arguments are also omitted. For instance, call to ´-plasma 10,,5´ is invalid
but ´-plasma 10´ is correct.
. Custom commands, are defined as G´MIC pipelines of native or custom commands.
They are interpreted by the G´MIC interpreter, and run slower than native commands.
But omitting arguments when invoking a custom command is permitted. For instance,
expressions ´-flower ,,,100,,2´ or ´-flower ,´ are correct.
- A user may easily add its own custom commands to the G´MIC interpreter (see section
´Adding custom commands´). Native commands cannot be added unless you modify the G´MIC
interpreter source code.
 

** Inputs / outputs properties :
 

- G´MIC is able to read/write most of the classical image file formats, including :
. 2d grayscale/color files : .png, .jpeg, .gif, .pnm, .tif, .bmp, ..
. 3d volumetric files : .dcm, .hdr, .nii, .pan, .inr, .pnk, ..
. Image sequences : .mpeg, .avi, .mov, .ogg, .flv, ..
. Generic ascii or binary data files : .cimg, .cimgz, .dlm, .asc, .pfm, .raw, .txt, .h.
. 3d object files : .off.
- When dealing with color images, G´MIC generally reads, writes and displays data using the
usual RGB color space.
- G´MIC is able to manage 3d objects that may be read from files or generated by G´MIC
commands. They are stored as one-column scalar images containing the object data, in the
following order : { magic_number; sizes; vertices; primitives; colors; opacities }.
These 3d representations can be processed as regular float-valued images.
(see command ´-split3d´ for accessing each of these 3d object data separately).
- Be aware that usual file formats may be sometimes not adapted to store all the available
image data, since G´MIC uses float-valued coding of image pixels. For instance, saving
an image that was initially loaded as a 16bits/channel image, as a .jpg file will result
in loss of informations. Use the .cimg file extension (or .cimgz, its compressed
version) to ensure that all data precision will be preserved when saving images.
- File options can/must be set for these specific file formats :
. Video files : Only sub-frames of an image sequence may be loaded, using the input
expression ´video.ext,[first_frame[%][,last_frame[%][,step]]]´.
Output framerate and bitrate (in Kb/s) can be also set by using the output expression
´file.mpg,_fps,_bitrate´.
. .raw binary files : Image dimensions and input pixel type may be specified when loading
.raw files with input expresssion ´file.raw,width[,type][,height[,depth[,dim]]]]´.
If no dimensions are specified, the resulting image is a one-column vector with
maximum possible height. Pixel type can also be specified with the output
expression ´file.raw[,type]´.
´type´ can be { bool | uchar | char | ushort | short | uint | int | float | double }.
. .yuv files : Image dimensions must be specified, and only sub-frames of an image
sequence may be loaded, using the input expression
´file.yuv,width,height[,first_frame[,last_frame[,step]]]´.
. .jpeg files : The output quality may be specified (in %), using the output expression
´file.jpg,30´ (here, to get a 30% quality output).
. .mnc files : The output header can set from another file, using the output expression
´file.mnc,header_template.mnc´.
. Filenames with extension ´.gmic´ are assumed to be G´MIC custom commands files. Loading
such a file will add the commands it defines to the interpreter.
. Inserting ´ext:´ on the beginning of a filename (e.g. ´jpg:filename´) forces G´MIC to
read/write the file as it would have been done if it had the specified extension.
- Some input/output formats and options may not be supported by your current version of
´gmic´, depending on the configuration flags set for the build of the ´gmic´ binaries.
 

** Substitution rules :
 

- G´MIC items containing ´@´, ´$´ or ´{}´ may be substituted before being interpreted. Use
the substituting expressions below to access data from the interpreter environment :
. ´@#´ is substituted by the current number of images in the list.
. ´@.´ is substituted by the current version number of the G´MIC interpreter
. ´@%´ is substituted by the pid of the current process.
. ´@|´ is substituted by the current value (expressed in seconds) of a millisecond
precision timer.
. ´@?´ is substituted by the current data type of image pixels.
. ´@^´ is substituted by the current verbosity level.
. ´@*´ is substituted by the current 3d rendering mode.
. ´@/´ is substituted by the current number of levels in the command scope.
. ´@{/}´ or ´@{/,subset}´ are substituted by the content of the global scope, or a
subset of it. If specified subset refers to multiple scope items, they are separated
by slashes ´/´.
. ´@>´ and ´@<´ are equivalent. They are both substituted by the number of nested
´repeat-done´ loops that are currently running.
. ´@{>}´ or ´@{>,subset}´ are substituted by the indice values (or a subset of them) of
the running ´repeat-done´ loops, expressed in the ascending order, starting from 0.
If specified subset refers to multiple indices, they are separated by commas ´,´.
. ´@{<}´ or ´@{<,subset}´ do the same but in descending order.
. ´@indice´ or ´@{indice,feature}´ are substituted by the list of pixel values of the
image [indice] (separated by commas), or by a specific feature (or subset) of it.
´indice´ can be an indice or an image name. Requested ´featured´ can be one of :
. ´w´ : image width (number of image columns).
. ´h´ : image height (number of image rows).
. ´d´ : image depth (number of image slices).
. ´s´ : image spectrum (number of image channels).
. ´wh´ : image width x image height.
. ´whd´ : image width x image height x image depth.
. ´whds´ : image width x image height x image depth x image spectrum.
(i.e. number of values in the specified image, eq. to ´#´).
. ´r´ : image shared state (1, if the pixel buffer is shared, 0 otherwise).
. ´n´ : image name or filename (if the image has been read from a file).
. ´b´ : image basename (i.e. filename without the folder path nor extension).
. ´x´ : image extension (i.e last characters after the last ´.´ in the filename).
. ´f´ : image folder name.
. ´#´ : number of image values (i.e. width x height x depth x spectrum).
. ´+´ : sum of all pixel values.
. ´-´ : difference of all pixel values.
. ´*´ : product of all pixel values.
. ´/´ : quotient of all pixel values.
. ´m´ : minimum pixel value.
. ´M´ : maximum pixel value.
. ´a´ : average pixel value.
. ´v´ : variance of pixel values.
. ´t´ : text string built from the image values, regarded as ascii codes.
. ´c´ : (x,y,z,c) coordinates of the minimum value, separated by commas ´,´.
. ´C´ : (x,y,z,c) coordinates of the maximum value, separated by commas ´,´.
. ´(x[%],_y[%],_z[%],_c[%],_boundary)´ : pixel value at (x[%],y[%],z[%],c[%]), with
specified boundary conditions { 0=dirichlet | 1=neumann | 2=cyclic }.
. Any other ´feature´ is considered either as a specified subset of image values, or
as a mathematical expression to evaluate (associated to selected image).
For instance, ´@{-1,0-50%}´ is substituted by the sequence of numerical values
coming from the first half data of the last image, separated by commas ´,´.
Expression ´@{0,w+h}´ is substituted by the sum of the width and height of the
first image.
. ´@!´ is substituted by the visibility state of the instant display window [0]
(can be { 0=closed | 1=visible }).
. ´@{!,feature}´ or ´@{!indice,feature}´ is substituted by a specific feature of the
instant display window [0] (or [indice], if specified). Requested ´feature´ can be :
. ´w´ : display width (i.e. width of the display area managed by the window).
. ´h´ : display height (i.e. height of the display area managed by the window).
. ´wh´ : display width x display height.
. ´d´ : window width (i.e. width of the window widget).
. ´e´ : window height (i.e. height of the window widget).
. ´de´ : window width x window height.
. ´u´ : screen width (actually independent on the window size).
.´ v´ : screen height (actually independent on the window size).
. ´uv´ : screen width x screen height.
. ´x´ : X-coordinate of the mouse position (or -1, if outside the display area).
. ´y´ : Y-coordinate of the mouse position (or -1, if outside the display area).
. ´b´ : state of the mouse buttons { 1=left-but. | 2=right-but. | 4=middle-but. }.
. ´o´ : state of the mouse wheel.
. ´k´ : decimal code of the pressed key if any, 0 otherwise.
. ´n´ : current normalization type of the instant display.
. ´c´ : boolean (0 or 1) telling if the instant display has been closed recently.
. ´r´ : boolean telling if the instant display has been resized recently.
. ´m´ : boolean telling if the instant display has been moved recently.
. Any other ´feature´ stands for a keycode name in capital letters, and is substi-
tuted by a boolean describing the current key state { 0=pressed | 1=released }.
. ´@{
specified command line (see command ´-status´). Verbosity level is decremented before
the execution of the command, and incremented back afterwards.
. Expression ´@{}´ stands thus for the current status value.
- $name and ´${name}´ are both substituted by the value of the specified named variable
(set previously by item ´name=value´), or by the current positive indice of the named
image ´[name]´, or by the value of the named OS environment variable (in this order).
- ´$>´ and ´$<´ (resp. ´${>}´ and ´${<}´) are shortcuts respectively for ´@{>,-1}´ and
´@{<,-1}´. They refer to the increasing/decreasing indice of the latest (currently
running) ´repeat..done´ loop.
- Any other expression inside braces (as in ´{expression}´) is considered as a mathematical
expression, and is evaluated, except for the three following cases :
. If expression starts and ends by single quotes, it is substituted by the sequence of
ascii codes that composes the specified string, separated by commas ´,´. For instance,
item ´{´foo´}´ is substituted by ´102,111,111´.
. If expression starts and ends with backquotes ´`´, it is substituted by the string
whose ascii codes are given by the list of values in between the backquotes.
For instance, item ´{`102,111,111`}´ is substituted by ´foo´.
. If expression contains operator ´´==´´ or ´´!=´´, it is substituted by 0 or 1, whether
the strings beside the operator are the same or not (case-sensitive). For instance,
both items ´{foo´==´foo}´ and ´{foo´!=´FOO}´ are substituted by ´1´.
. If expression starts with an underscore ´_´, it is substituted by the mathematical
evaluation of the expression, truncated to a readable format.
- Item substitution is never done in items between double quotes. One must break the quotes
to enable substitution if needed, as in
is then a convenient way to disable the substitutions mechanism in items, when necessary.
- One can also disable the substitution mechanism on items outside double quotes, by
escaping the ´@´,´{´,´}´ or ´$´ characters, as in ´{3+4 doesn´t evaluate´.
 

** Mathematical expressions :
 

- G´MIC has an embedded mathematical parser. It is used to evaluate expressions inside
braces ´{}´, or formulas in commands that may take one as an argument (e.g. ´-fill´).
- When used in commands, a formula is evaluated for each pixel of the selected images.
- The math parser understands the following set of functions, operators and variables :
_ Usual operators : || (logical or), && (logical and), | (bitwise or), & (bitwise and),
!=, ==, <=, >=, <, >, << (left bitwise shift), >> (right bitwise shift), -, +, *, /,
% (modulo), ^ (power), ! (logical not), ~ (bitwise not).
_ Usual functions : sin(), cos(), tan(), asin(), acos(), atan(), sinh(), cosh(), tanh(),
log(), log2(), log10(), exp(), sign(), abs(), atan2(), round(), narg(), arg(),
isval(), isnan(), isinf(), isint(), isbool(), rol() (left bit rotation),
ror() (right bit rotation), min(), max(), sinc(), int().
Function ´atan2()´ is the version of atan() with two arguments ´y,x´ (as in C/C++).
Function ´narg()´ returns the number of specified arguments.
Function ´arg(i,a_1,..,a_n)´ returns the ith argument a_i.
Functions ´min()´ and ´max()´ can be called with an arbitrary number of arguments.
Functions ´isval()´, ´isnan()´, ´isinf()´, ´isbool()´ can be used to test the type of
a given number or expression.
_ The variable names below are pre-defined. They cannot be overloaded :
. ´w´ : width of the associated image, if any (0 otherwise).
. ´h´ : height of the associated image, if any (0 otherwise).
. ´d´ : depth of the associated image, if any (0 otherwise).
. ´s´ : spectrum of the associated image, if any (0 otherwise).
. ´x´ : current processed column of the associated image, if any (0 otherwise).
. ´y´ : current processed row of the associated image, if any (0 otherwise).
. ´z´ : current processed slice of the associated image, if any (0 otherwise).
. ´c´ : current processed channel of the associated image, if any (0 otherwise).
. ´i´ : current processed pixel value (i.e. value located at (x,y,z,c)) of the
associated image, if any (0 otherwise).
. ´im´,´iM´,´ia´,´iv´ : Respectively the minimum, maximum, average values and
variance of the associated image, if any (0 otherwise).
. ´xm´,´ym´,´zm´,´cm´ : The pixel coordinates of the minimum value in the associated
image, if any (0 otherwise).
. ´xM´,´yM´,´zM´,´cM´ : The pixel coordinates of the maximum value in the
associated image, if any (0 otherwise).
. ´pi´ : value of pi, i.e. 3.1415926..
. ´e´ : value of e, i.e. 2.71828..
. ´?´ or ´u´ : a random value between [0,1], following a uniform distribution.
. ´g´ : a random value, following a gaussian distribution of variance 1
(roughly in [-5,5]).
_ These special operators can be used :
. ´;´ : expression separator. The returned value is always the last encountered
expression. For instance expression ´1;2;pi´ is evaluated as ´pi´.
. ´=´ : variable assignment. Variables in mathematical parser can only refer to.
numerical values. Variable names are case-sensitive. Use this operator in
conjunction with ´;´ to define complex evaluable expressions, such as
´t=cos(x);3*t^2+2*t+1´.
These variables remain local to the mathematical parser and cannot be accessed
outside the evaluated expression.
_ The following specific functions are also defined :
. ´if(expr_cond,expr_then,expr_else)´ : return value of ´expr_then´ or ´expr_else´,
depending on the value of ´expr_cond´ (0=false, other=true). For instance,
G´MIC command ´-fill if(x%10==0,255,i)´ will draw blank vertical lines on every
10th column of an image.
. ´?(max)´ or ´?(min,max)´ : return a random value between [0,max] or [min,max],
following a uniform distribution. ´u(max)´ and ´u(0,max)´ mean the same.
. ´i(a,_b,_c,_d,_interpolation,_boundary)´ : return the value of the pixel located
at position (a,b,c,d) in the associated image, if any (0 otherwise).
Interpolation parameter can be { 0=nearest neighbor | other=linear }.
Boundary conditions can be { 0=dirichlet | 1=neumann | 2=cyclic }.
Omitted coordinates are replaced by their default values which are respectively
x, y, z, c and 0.
For instance command ´-fill 0.5*(i(x+1)-i(x-1))´ will estimate the X-derivative
of an image with a classical finite difference scheme.
- The last image of the list is always associated to the evaluations of ´{expressions}´,
e.g. G´MIC sequence ´256,128 -f {w}´ will create a 256x128 image filled with value 256.
 

** Image and data viewers :
 

- G´MIC has some very handy embedded visualization modules, for 1d signals
(command ´-plot´), 1d/2d/3d images (command ´-display´) and 3d objects
(command ´-display3d´). It enables an interactive view of the selected image data.
- The following keyboard shortcuts are available in the interactive viewers :
. CTRL+D : Increase window size.
. CTRL+C : Decrease window size.
. CTRL+R : Reset window size.
. CTRL+F : Toggle fullscreen mode.
. CTRL+S : Save current window snapshot as numbered file ´gmic_xxxx.bmp´.
. CTRL+O : Save current instance of the viewed data, as numbered file ´gmic_xxxx.cimgz´.
- Shortcuts specific to the 1d/2d/3d image viewer are :
. CTRL+P : Play z-stack of frames as a movie (for volumetric 3d images).
. CTRL+V : Enable/disable 3D view (for volumetric 3d images).
. CTRL+(mousewheel) : Zoom in/out.
. SHIFT+(mousewheel) : Go left/right.
. ALT+(mousewheel) : Go up/down.
. Numeric PAD : Zoom in/out (+/-) and move through zoomed image (digits).
. BACKSPACE : Reset zoom scale.
- Shortcuts specific to the 3d object viewer are :
. (mouse)+(left mouse button) : Rotate 3d object.
. (mouse)+(right mouse button) : Zoom 3d object.
. (mouse)+(middle mouse button) : Shift 3d object.
. (mousewheel) : Zoom in/out.
. CTRL+F1 .. CTRL+F6 : Switch between different 3d rendering modes.
. CTRL+Z : Enable/disable z-buffered rendering.
. CTRL+A : Show/hide 3d axes.
. CTRL+G : Save 3d object, as numbered file ´gmic_xxxx.off´.
. CTRL+T : Switch between single/double-sided 3d modes.
 

** Adding custom commands :
 

- Custom commands can be defined by a user, through the use of G´MIC custom commands files.
- A command file is a simple ascii text file, where each line starts either by
´command_name : command_definition´ or ´command_definition (continuation)´.
- Custom command names must use characters [a-zA-Z0-9_] and cannot start with a number.
- Any ´ # comment´ expression found in a custom commands file is discarded by the G´MIC
interpreter, wherever it is located in a line.
- A default command file is already provided within the G´MIC package. It is located
at ´http://gmic.sourceforge.net/gmic_def.xxxx´, where ´xxxx´ has to be replaced by
the 4 digits of the current G´MIC version number. Looking at it is a good place to start
learning to create your own custom commands. All the commands from this default command
file are already included by default in the current version of the G´MIC interpreter.
- The default command file located at ´http://gmic.sourceforge.net/gmic_def.xxxx´ may be
updated/corrected by the G´MIC developers. You can thus download and include it with the
´-command´ directive to update your default command definitions as well.
- In custom commands, the following $-expressions are substituted :
. ´$*´ is substituted by a verbatim copy of the specified arguments string.
. ´$#´ is substituted by the maximum indice of known arguments (either specified by the
user or set to a default value in the custom command).
. ´$?´ is substituted by a string telling about the command subset restriction (only
useful when custom commands need to output descriptive messages).
. ´$i´ and ´${i}´ are both substituted by the i-th specified argument. Negative indices
such as ´${-j}´ are allowed and refer to the j^th latest argument. ´$0´ is substituted
by the custom command name.
. ´${i=default}´ is substituted by the value of $i (if defined) or by its new value set
to ´default´ otherwise (´default´ may be a $-expression as well).
. ´${subset}´ is substituted by the arguments values (separated by commas ´,´) of a
specified argument subset. For instance expression ´${2--2}´ is substitued by all
specified arguments except the first and the last one. Expression ´${^0}´ is then
substituted by all arguments of the invoked command (eq. to ´$*´ if all specified
arguments have indeed a value).
. ´$=var´ is substituted by the set of instructions that will assign each argument $i
to the named variable ´var$i´ (for i in [0..$#]). This is particularly useful when a
custom command want to manage variable numbers of arguments. Variables names must
use characters [a-zA-Z0-9_] and cannot start with a number
- These particular $-expressions are always substituted, even in double quoted items or
when the dollar sign ´$´ is escaped with a backslash ´\'. To avoid substitution, place
an empty double quoted string just after the ´$´ (as in ´$
- Specifying arguments may be skipped when invoking a custom command, by replacing them by
commas ´,´ as in expression ´-flower ,,3´. Omitted arguments are set to their default
values, which must be thus explicitely defined in the code of the corresponding custom
command (using default argument expressions as ´${1=default}´).
- If one numbered argument encoutered in a custom command has no values, the interpreter
throws an error.
 

List of native commands
-----------------------
 

All native G´MIC commands are listed below, classified by themes.
When several choices of command arguments are possible, they appear separated by ´|´.
An argument specified inside ´[]´ or starting by ´_´ is optional except when standing for an
existing image [image], where ´image´ can be either an indice number or an image name.
In this case, the ´[]´ characters are mandatory when writing the item. A command marked with
(*) is available for all image types, otherwise only for the default ´float´ pixel datatype.
Remember that native commands are faster than custom commands, so use then when possible.
 

** Global options :
 

-debug (*)
 

Activate debug mode.
When activated, the G´MIC interpreter becomes very verbose and outputs additionnal log
messages describing the internal state of the interpreter on the standard output.
This is very useful for debugging the execution of a custom command.
 

-help _command (*)
 

Display help (optionally for specified command only) and exit.
(eq. to ´-h´).
 

-version (*)
 

Display current version number and exit.
 

** Inputs / outputs :
 

-camera _camera_index>=-1,_nb_frames>0,_skip_frames>=0,release_camera={ 0 | 1 } (*)
 

Insert one or several frames from specified camera, with custom delay between frames (in ms).
Set ´camera_index´ to -1 to use the default camera device.
When ´release_camera==1´, the camera stream is released instead of capturing new images.
Default values : ´camera_index=-1´, ´nb_frames=1´, ´skip_frames=0´ and ´release_camera=0´.
 

-command filename | (*)
http[s]://URL |
 
 

Import G´MIC custom commands from specified file, URL or string.
(eq. to ´-m´).
Imported commands are available directly after the ´-command´ invokation.
 

-display
 

Display selected images in an interactive viewer (use the instant window [0] if opened).
(eq. to ´-d´).
 

-display3d
 

Display selected 3d objects in an interactive viewer (use the instant window [0] if opened).
(eq. to ´-d3d´).
 

-echo message (*)
 

Output specified message, on the standard output.
(eq. to ´-e´).
Command subset (if any) stands for displayed scope indices instead of image indices.
 

-input [type:]filename | (*)
[type:]http://URL |
[selection]x_nb_copies>0 |
{ width>0[%] | [image_w] },{ _height>0[%] | [image_h] },{ _depth>0[%] | [image_d] },
{ _spectrum>0[%] | [image_s] },_{ value1,_value2,.. | ´formula´ } |
(value1{,|;|/|^}value2{,|;|/|^}..) |
0
 

Insert a new image taken from a filename or from a copy of an existing image [´indice´],
or insert new image with specified dimensions and values. Single quotes may be omitted in
´formula´. Specifying argument ´0´ inserts an ´empty´ image.
(eq. to ´-i´ | (no args)).
Default values : ´nb_copies=1´, ´height=depth=spectrum=1´ and ´value1=0´.
 

-output [type:]filename,_format_options (*)
 

Output selected images as one or several numbered file(s).
(eq. to ´-o´).
Default value : ´format_options=(undefined).
 

-plot _plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax |
´formula´,_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax
 

Display selected image or formula in an interactive viewer (use the instant window [0] if
opened).
´plot_type´ can be { 0=none | 1=lines | 2=splines | 3=bar }.
´vertex_type´ can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }.
´xmin´,´xmax´,´ymin´,´ymax´ set the coordinates of the displayed xy-axes.
Default values : ´plot_type=1´, ´vertex_type=1´ and ´xmin=xmax=ymin=ymax=0 (auto)´.
 

-print (*)
 

(eq. to ´-p´).
Output informations on selected images, on the standard output.
 

-select feature_type
 

Interactively select a feature from selected images (use the instant window [0] if opened).
´feature_type´ can be { 0=point | 1=segment | 2=rectangle | 3=ellipse }.
The retrieved feature is returned as a 3d or 6d vector containing the feature coordinates.
 

-shared x0[%],x1[%],y[%],z[%],v[%] | (*)
y0[%],y1[%],z[%],v[%] |
z0[%],z1[%],v[%] |
v0[%],v1[%] |
(no args)
 

Insert shared buffers from (opt. points/rows/planes/channels of) selected images.
(eq. to ´-sh´).
 

-shell (*)
 

Start shell environment, with selected images.
 

-srand value | (*)
(no args)
 

Set random generator seed.
If no argument is specified, a random value is used as the random generator seed.
 

-type datatype (*)
 

Set pixel datatype for all images of the list.
´datatype´ can be { bool | uchar | char | ushort | short | uint |
int | float | double }.
 

-uncommand command_name | * (*)
 

Discard last definition of specified custom command.
Set argument to ´*´ for discarding all existing custom commands.
 

-verbose level | (*)
{ + | - }
 

Set or increment/decrement the verbosity level.
(eq. to ´-v´).
When ´level´>=0, G´MIC log messages are displayed on the standard output.
Default value for the verbosity level is 0.
 

-wait delay |
(no args)
 

Wait for a given delay (in ms) or for a user event occuring on the selected instant window.
´delay´ can be { <0=delay+flush | 0=event | >0=delay }.
Command subset (if any) stands for instant window indices instead of image indices.
 

-warn message (*)
 

Print specified warning message, on the standard output.
Command subset (if any) stands for displayed scope indices instead of image indices.
 

-window _width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_title
 

Display selected images into an instant window with specified size, normalization type,
fullscreen mode and title.
(eq. to ´-w´).
If ´width´ or ´height´ is set to -1, the corresponding dimension is adjusted to the window
or image size.
´width´=0 or ´height´=0 closes the instant window.
´normalization´ can be { -1=keep same | 0=none | 1=always | 2=1st-time | 3=auto }.
´fullscreen´ can be { -1=keep same | 0=no | 1=yes }.
You can manage up to 10 different instant windows by using the numbered variants
´-w0´ (default, eq. to ´-w´),´-w1´,..,´-w9´ of the command ´-w´.
Default values : ´width=height=normalization=fullscreen=-1´ and ´title=(undefined)´.
 

** List manipulation :
 

-keep (*)
 

Keep only selected images.
(eq. to ´-k´).
 

-move position[%] (*)
 

Move selected images at specified position.
(eq. to ´-mv´).
 

-name name (*)
 

Set name of selected images.
(eq. to ´-nm´).
 

-remove (*)
 

Remove selected images.
(eq. to ´-rm´).
 

-reverse (*)
 

Reverse positions of selected images.
(eq. to ´-rv´).
 

** Mathematical operators :
 

-abs
 

Compute the pointwise absolute values of selected images.
 

-acos
 

Compute the pointwise arc-cosine of selected images.
 

-add value[%] |
[image] |
´formula´ |
(no args)
 

Add specified value, image or mathematical expression to selected images,
or compute the pointwise sum of selected images.
(eq. to ´-+´).
 

-and value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise AND of selected images with specified value, image or mathematical
expression, or compute the pointwise sequential bitwise AND of selected images.
 

-asin
 

Compute the pointwise arc-sine of selected images.
 

-atan
 

Compute the pointwise arc-tangent of selected images.
 

-atan2 [x_argument]
 

Compute the pointwise oriented arc-tangent of selected images.
Each selected image is regarded as the y-argument of the arc-tangent function, while the
specified image gives the corresponding x-argument.
 

-bsl value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise left shift of selected images with specified value, image or
mathematical expression, or compute the pointwise sequential bitwise left shift of
selected images.
(eq. to ´-<<´).
 

-bsr value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise right shift of selected images with specified value, image or
mathematical expression, or compute the pointwise sequential bitwise right shift of
selected images.
(eq. to ´->>´).
 

-cos
 

Compute the pointwise cosine of selected images.
 

-cosh
 

Compute the pointwise hyperbolic cosine of selected images.
 

-div value[%] |
[image] |
´formula´ |
(no args)
 

Divide selected image by specified value, image or mathematical expression,
or compute the pointwise quotient of selected images.
(eq. to ´-/´).
 

-eq value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean equality of selected images with specified value, image or
mathematical expression, or compute the boolean equality of selected images.
(eq. to ´-==´).
 

-exp
 

Compute the pointwise exponential of selected images.
 

-ge value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean ´greater or equal than´ of selected images with specified value, image
or mathematical expression, or compute the boolean ´greater or equal than´ of selected images.
(eq. to ´->=´).
 

-gt value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean ´greater than´ of selected images with specified value, image or
mathematical expression, or compute the boolean ´greater than´ of selected images.
(eq. to ´->´).
 

-le value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean ´less or equal than´ of selected images with specified value, image or
mathematical expression, or compute the boolean ´less or equal than´ of selected images.
(eq. to ´-<=´).
 

-lt value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean ´less than´ of selected images with specified value, image or
mathematical expression, or compute the boolean ´less than´ of selected images.
(eq. to ´-<´).
 

-log
 

Compute the pointwise base-e logarithm of selected images.
 

-log10
 

Compute the pointwise base-10 logarithm of selected images.
 

-log2
 

Compute the pointwise base-2 logarithm of selected images.
 

-max value[%] |
[image] |
´formula´ |
(no args)
 

Compute the maximum between selected images and specified value, image or
mathematical expression, or compute the pointwise maxima between selected images.
 

-mdiv value[%] |
[image] |
´formula´ |
(no args)
 

Compute the matrix division of selected matrices/vectors by specified value, image or
mathematical expression, or compute the matrix division of selected images.
(eq. to ´-//´).
 

-min value[%] |
[image] |
´formula´ |
(no args)
 

Compute the minimum between selected images and specified value, image or
mathematical expression, or compute the pointwise minima between selected images.
 

-mod value[%] |
[image] |
´formula´ |
(no args)
 

Compute the modulo of selected images with specified value, image or mathematical
expression, or compute the pointwise sequential modulo of selected images.
(eq. to ´-%´).
 

-mmul value[%] |
[image] |
´formula´ |
(no args)
 

Compute the matrix multiplication of selected matrices/vectors by specified value, image or
mathematical expression, or compute the matrix multiplication of selected images.
(eq. to ´-**´).
 

-mul value[%] |
[image] |
´formula´ |
(no args)
 

Multiply selected images by specified value, image or mathematical expression,
or compute the pointwise product of selected images.
(eq. to ´-*´).
 

-neq value[%] |
[image] |
´formula´ |
(no args)
 

Compute the boolean inequality of selected images with specified value, image or
mathematical expression, or compute the boolean inequality of selected images.
(eq. to ´-!=´).
 

-or value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise OR of selected images with specified value, image or mathematical
expression, or compute the pointwise sequential bitwise OR of selected images.
 

-pow value[%] |
[image] |
´formula´ |
(no args)
 

Raise selected image to the power of specified value, image or mathematical
expression, or compute the pointwise sequential powers of selected images.
(eq. to ´-^´).
 

-rol value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise left rotation of selected images with specified value, image or
mathematical expression, or compute the pointwise sequential bitwise left rotation of
selected images.
 

-ror value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise right rotation of selected images with specified value, image or
mathematical expression, or compute the pointwise sequential bitwise right rotation of
selected images.
 

-sign
 

Compute the pointwise sign of selected images.
 

-sin
 

Compute the pointwise sine of selected images.
 

-sinc
 

Compute the pointwise sinc function of selected images.
 

-sinh
 

Compute the pointwise hyperbolic sine of selected images.
 

-sqr
 

Compute the pointwise square function of selected images.
 

-sqrt
 

Compute the pointwise square root of selected images.
 

-sub value[%] |
[image] |
´formula´ |
(no args)
 

Subtract specified value, image or mathematical expression to selected images,
or compute the pointwise difference of selected images.
(eq. to ´--´).
 

-tan
 

Compute the pointwise tangent of selected images.
 

-tanh
 

Compute the pointwise hyperbolic tangent of selected images.
 

-xor value[%] |
[image] |
´formula´ |
(no args)
 

Compute the bitwise XOR of selected images with specified value, image or mathematical
expression, or compute the pointwise sequential bitwise XOR of selected images.
 

** Values manipulation :
 

-cut { value0[%] | [image0] },{ value1[%] | [image1] } |
[image] |
(no args)
 

Cut values of selected images in specified range.
(eq. to ´-c´).
(noargs) runs interactive mode (uses the instant window [0] if opened).
 

-endian (*)
 

Reverse data endianness of selected images.
 

-equalize nb_levels>0[%],_value0[%],_value1[%]
 

Equalize histograms of selected images.
If value range is specified, the equalization is done only for pixels in the specified
value range. Argument ´value1´ must be specified if ´value0´ is set.
Default values : ´value0=0%´ and ´value1=100%´.
 

-fill value1,_value2,.. |
[image] |
´formula´
 

Fill selected images with values read from the specified value list, existing image
or mathematical expression. Single quotes may be omitted in ´formula´.
(eq. to ´-f´).
 

-index { [palette] | predefined_palette },0<=_dithering<=1,_map_palette={ 0 | 1 }
 

Index selected vector-valued images by specified vector-valued palette.
´predefined_palette´ can be { 0=default | 1=HSV | 2=lines | 3=hot |
4=cool | 5=jet | 6=flag | 7=cube }.
Default values : ´dithering=0´ and ´map_palette=0´.
 

-map [palette] |
predefined_palette
 

Map specified vector-valued palette to selected indexed scalar images.
´predefined_palette´ can be { 0=default | 1=HSV | 2=lines | 3=hot |
4=cool | 5=jet | 6=flag | 7=cube }.
 

-noise std_variation>=0[%],_noise_type
 

Add random noise to selected images.
´noise_type´ can be { 0=gaussian | 1=uniform | 2=salt&pepper | 3=poisson | 4=rice }.
Default value : ´noise_type=0´.
 

-normalize { value0[%] | [image0] },{ value1[%] | [image1] } |
[image]
 

Linearly normalize values of selected images in specified range.
(eq. to ´-n´).
 

-rand { value0[%] | [image0] },{ value1[%] | [image1] } |
[image]
 

Fill selected images with random values uniformly distributed in the specified range.
 

-round rounding_value>=0,_rounding_type |
(no args)
 

Round values of selected images.
´rounding_type´ can be { -1=backward | 0=nearest | 1=forward }.
Default value : ´rounding_type=0´.
 

-set value,_x[%],_y[%],_z[%],_c[%] (*)
 

Set pixel value in selected images, at specified coordinates.
(eq. to ´-=´).
If specified coordinates are outside the image bounds, no action is performed.
Default values : ´x=y=z=c=0´.
 

-threshold value[%],_soft |
(no args)
 

Threshold values of selected images.
(eq. to ´-t´).
´soft´ can be { 0=hard-thresholding | 1=soft-thresholding }.
(noargs) runs interactive mode (uses the instant window [0] if opened).
Default value : ´soft=0´.
 

** Colors manipulation :
 

-cmy2rgb
 

Convert selected images from CMY to RGB colorbases.
 

-cmyk2rgb
 

Convert selected images from CMYK to RGB colorbases.
 

-hsi2rgb
 

Convert selected images from HSI to RGB colorbases.
 

-hsl2rgb
 

Convert selected images from HSL to RGB colorbases.
 

-hsv2rgb
 

Convert selected images from HSV to RGB colorbases.
 

-lab2rgb
 

Convert selected images from Lab to RGB colorbases.
 

-rgb2cmy
 

Convert selected images from RGB to CMY colorbases.
 

-rgb2cmyk
 

Convert selected images from RGB to CMYK colorbases.
 

-rgb2hsi
 

Convert selected images from RGB to HSI colorbases.
 

-rgb2hsl
 

Convert selected images from RGB to HSL colorbases.
 

-rgb2hsv
 

Convert selected images from RGB to HSV colorbases.
 

-rgb2lab
 

Convert selected images from RGB to Lab colorbases.
 

-rgb2srgb
 

Convert selected images from RGB to sRGB colorbases.
 

-rgb2ycbcr
 

Convert selected images from RGB to YCbCr colorbases.
 

-rgb2yuv
 

Convert selected images from RGB to YUV colorbases.
 

-rgb2xyz
 

Convert selected images from RGB to XYZ colorbases.
 

-srgb2rgb
 

Convert selected images from sRGB to RGB colorbases.
 

-xyz2rgb
 

Convert selected images from XYZ to RGB colorbases.
 

-ycbcr2rgb
 

Convert selected images from YCbCr to RGB colorbases.
 

-yuv2rgb
 

Convert selected images from YUV to RGB colorbases.
 

** Geometry manipulation :
 

-append axis={ x | y | z | c },_alignment (*)
 

Append selected images along specified axis.
(eq. to ´-a´).
Usual ´alignment´ values are { 0=left-justified | 0.5=centered | 1=right-justified }.
Default value : ´alignment=0´.
 

-autocrop value1,value2,.. (*)
 

Autocrop selected images by specified vector-valued intensity.
 

-channels { [image0] | c0[%] },_{ [image1] | c1[%] } (*)
 

Keep only specified channels of selected images.
Dirichlet boundary is used when specified channels are out of range.
 

-columns { [image0] | x0[%] },_{ [image1] | x1[%] } (*)
 

Keep only specified columns of selected images.
Dirichlet boundary is used when specified columns are out of range.
 

-crop x0[%],x1[%],_boundary | (*)
x0[%],y0[%],x1[%],y1[%],_boundary |
x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary |
x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary |
(noargs)
 

Crop selected images with specified region coordinates.
(eq. to ´-z´).
´boundary´ can be { 0=dirichlet | 1=neumann }.
(noargs) runs interactive mode (uses the instant window [0] if opened).
Default value : ´boundary=0´.
 

-mirror { x | y | z }..{ x | y | z } (*)
 

Mirror selected images along specified axes.
 

-permute permutation_string (*)
 

Permute selected image axes by specified permutation.
´permutation´ is a combination of the character set {x|y|z|c},
e.g. ´xycz´, ´cxyz´, ..
 

-resize [image],_interpolation,_boundary,_cx,_cy,_cz,_cc | (*)
{[image_w] | width>0[%]},_{[image_h] | height>0[%]},_{[image_d] | depth>0[%]},
_{[image_s] | spectrum>0[%]},_interpolation,_boundary,_cx,_cy,_cz,_cc |
(noargs)
 

Resize selected images with specified geometry.
(eq. to ´-r´).
´interpolation´ can be { -1=none (memory content) | 0=none | 1=nearest | 2=average |
3=linear | 4=grid | 5=bicubic | 6=lanczos }.
´boundary´ has different meanings, according to the chosen ´interpolation´ mode :
. When ´interpolation=={ -1 | 1 | 2 | 4 }´, ´boundary´ is meaningless.
. When ´interpolation==0´, ´boundary´ can be { 0=dirichlet | 1=neumann | 2=cyclic }.
. When ´interpolation=={ 3 | 5 | 6 }´, ´boundary´ can be { 0=none | 1=neumann }.
´cx,cy,cz,cc´ set the centering mode when ´interpolation=0´ (must be in [0,1]).
Their default values are ´0´.
(noargs) runs interactive mode (uses the instant window [0] if opened).
Default values : ´interpolation=1´, ´boundary=0´ and ´cx=cy=cz=cc=0´.
 

-resize2x (*)
 

Resize selected images using the Scale2x algorithm.
 

-resize3x (*)
 

Resize selected images using the Scale3x algorithm.
 

-rotate angle,_boundary,_interpolation,_cx[%],_cy[%],_zoom (*)
 

Rotate selected images with specified angle (in deg.).
´boundary´ can be { 0=dirichlet | 1=neumann | 2=cyclic }.
´interpolation´ can be { 0=none | 1=linear | 2=bicubic }.
When rotation center (´cx´,´cy´) is specified, the size of the image is preserved.
Default values : ´boundary=0´, ´interpolation=1´, ´cx=cy=(undefined)´ and ´zoom=1´.
 

-rows { [image0] | y0[%] },_{ [image1] | y1[%] } (*)
 

Keep only specified rows of selected images.
Dirichlet boundary is used when specified rows are out of range.
 

-shift vx[%],_vy[%],_vz[%],_vc[%],_boundary (*)
 

Shift selected images by specified displacement vector.
´boundary´ can be { 0=dirichlet | 1=neumann | 2=cyclic }.
Default value : ´boundary=0´.
 

-slices { [image0] | z0[%] },_{ [image1] | z1[%] } (*)
 

Keep only specified slices of selected images.
Dirichlet boundary is used when specified slices are out of range.
 

-sort _ordering={ + | - },_axis={ x | y | z | c }
 

Sort pixel values of selected images.
If ´axis´ is specified, the sorting is done according to the data of the first column/row/slice/channel
of selected images.
Default values : ´ordering=+´ and ´axis=(undefined)´.
 

-split { x | y | z | c }..{ x | y | z | c },_nb_parts | (*)
keep_splitting_values={ + | - },value1,value2,...
 

Split selected images along specified axis, or sequence of scalar values.
(eq. to ´-s´).
´nb_parts´ can be { 0=maximum split | >0=split in N parts | <0=split in parts of size -N }.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default value : ´nb_parts=0´.
 

-unroll axis={ x | y | z | c } (*)
 

Unroll selected images along specified axis.
(eq. to ´-y´).
 

-warp [warping_field],_is_relative={ 0 | 1 },_interpolation={ 0 | 1 },_boundary,_nb_frames>0
 

Warp selected image with specified displacement field.
´boundary´ can be { 0=dirichlet | 1=neumann | 2=cyclic }.
Default values : ´is_relative=0´, ´interpolation=1´, ´boundary=0´ and ´nb_frames=1´.
 

** Filtering :
 

-bilateral std_variation_s>0[%],std_variation_r>0
 

Blur selected images by anisotropic bilateral filtering.
 

-blur std_variation>=0[%],_boundary
 

Blur selected images by a quasi-gaussian recursive filter.
(eq. to ´-b´).
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default value : ´boundary=1´.
 

-convolve [mask],_boundary,_is_normalized={ 0 | 1 }
 

Convolve selected images by specified mask.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-correlate [mask],_boundary,_is_normalized={ 0 | 1 }
 

Correlate selected images by specified mask.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-denoise std_variation_s>=0,_std_variation_p>=0,_patch_size>=0,_lookup_size>=0,_smoothness,
_fast_approx={ 0 | 1 }
 

Denoise selected images by non-local patch averaging.
Default values : ´std_variation_p=10´, ´patch_size=5´, ´lookup_size=6´ and ´smoothness=1´.
 

-deriche std_variation>=0[%],order={ 0 | 1 | 2 },axis={ x | y | z | c },_boundary
 

Apply Deriche recursive filter with specified standard deviation, order, axis and border
conditions on selected images.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default value : ´boundary=1´.
 

-dilate size>=0 |
size_x>=0,size_y>=0,size_z>=0 |
[mask],_boundary,_is_normalized={ 0 | 1 }
 

Dilate selected images by a rectangular or the specified structuring element.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default values : ´size_z=1´, ´boundary=1´ and ´is_normalized=0´.
 

-eikonal nb_iterations>=0,_band_size>=0
 

Compute iterations of the eikonal equation (signed distance function) on selected images.
When ´band_size==0´, the algorithm performs on all image pixels.
Default value : ´band_size=0´.
 

-erode size>=0 |
size_x>=0,size_y>=0,_size_z>=0 |
[mask],_boundary,_is_normalized={ 0 | 1 }
 

Erode selected images by a rectangular or the specified structuring element.
´boundary´ can be { 0=dirichlet | 1=neumann }.
Default values : ´size_z=1´, ´boundary=1´ and ´is_normalized=0´.
 

-fft
 

Compute the direct fourier transform (real and imaginary parts) of selected images.
 

-gradient { x | y | z }..{ x | y | z },_scheme |
(no args)
 

Compute the gradient components (first derivatives) of selected images.
(eq. to ´-g´).
´scheme´ can be { -1=backward | 0=centered | 1=forward | 2=sobel |
3=rotation-invariant (default) | 4=recursive }.
(no args) compute all significant 2d/3d components.
Default value : ´scheme=3´.
 

-haar scale>0
 

Compute the direct haar multiscale wavelet transform of selected images.
 

-hessian { xx | xy | xz | yy | yz | zz }..{ xx | xy | xz | yy | yz | zz } |
(no args)
 

Compute the hessian components (second derivatives) of selected images.
(no args) compute all significant components.
 

-ifft
 

Compute the inverse fourier transform (real and imaginary parts) of selected images.
 

-ihaar scale>0
 

Compute the inverse haar multiscale wavelet transform of selected images.
 

-inpaint [mask]
 

Inpaint selected images by specified mask.
 

-median radius>=0
 

Apply median filter of specified radius on selected images.
 

-sharpen amplitude>=0 |
amplitude>=0,edge>=0,_alpha,_sigma
 

Sharpen selected images by inverse diffusion or shock filters methods.
´edge´ must be specified to enable shock-filter method.
Default values : ´alpha=0´ and ´sigma=0´.
 

-smooth amplitude>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dl>0,_da>0,_precision>0,
interpolation,_fast_approx={ 0 | 1 } |
nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 |
[tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={ 0 | 1 } |
[tensor_field],_nb_iters>=0,_dt>0,0
 

Smooth selected images anisotropically using diffusion PDE´s, with specified field of
diffusion tensors.
´anisotropy´ must be in [0,1].
´interpolation´ can be { 0=nearest | 1=linear | 2=runge-kutta }.
Default values : ´sharpness=0.7´, ´anisotropy=0.3´, ´alpha=0.6´, ´sigma=1.1´, ´dl=0.8´, ´da=30´,
´precision=2´, ´interpolation=0´ and ´fast_approx=1´.
 

-structuretensors _scheme
 

Compute the structure tensor field of selected images.
´scheme´ can be { 0=centered | 1=forward-backward1 | 2=forward-backward2 }.
Default value : ´scheme=2´.
 

-watershed [priority_image],_fill_lines={ 0 | 1 }
 

Compute the watershed transform of selected images.
Default value : ´fill_lines=1´.
 

** Features extraction :
 

-displacement [source_image],_smoothness,_precision>=0,_nb_scales>=0,iteration_max>=0,
is_backward={ 0 | 1 }
 

Estimate displacement field between specified source and selected images.
If ´smoothness>=0´, regularization type is set to isotropic, else to anisotropic.
If ´nbscales==0´, the number of needed scales is estimated from the image size.
Default values : ´smoothness=0.1´, ´precision=5´, ´nb_scales=0´, ´iteration_max=10000´
and ´is_backward=1´.
 

-distance isovalue[%],_metric |
isovalue[%],[custom_metric] |
x[%]>=0,y[%]>=0,z[%]>=0
 

Compute the unsigned distance function to specified isovalue or coordinates.
´metric´ can be { 0=chebyshev | 1=manhattan | 2=euclidean | 3=squared-euclidean }.
A custom metric for chamfer distances can be specified as a 2d or 3d image.
If arguments ´x´,´y´,´z´ are provided, the image stands for a potential map used to
determine the distance map to specified point (x,y,z).
Default value : ´metric=2´.
 

-histogram nb_levels>0[%],_value0[%],_value1[%]
 

Compute the histogram of selected images.
If value range is set, the histogram is estimated only for pixels in the specified
value range. Argument ´value1´ must be specified if ´value0´ is set.
Default values : ´value0=0%´ and ´value1=100%´.
 

-label tolerance>=0,is_high_connectivity={ 0 | 1 }
 

Label connected components in selected images.
Default values : ´tolerance=0´ and ´is_high_connectivity=0´.
 

-mse
 

Compute MSE (Mean-Squared Error) matrix between selected images.
 

-psnr _max_value
 

Compute PSNR (Peak Signal-to-Noise Ratio) matrix between selected images.
Default value : ´max_value=255´.
 

** Image drawing :
 

-axes x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,..
 

Draw xy-axes on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
To draw only one X-axis at row Y, set both ´y0´ and ´y1´ to Y.
To draw only one Y-axis at column X, set both ´x0´ and ´x1´ to X.
Default values : ´font_height=13´, ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-ellipse x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,..
 

Draw specified colored ellipse on selected images.
A radius of ´100%´ stands for ´sqrt(width*height)´.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified. If a pattern is specified, the ellipse is
drawn outlined instead of filled.
Default values : ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-flood x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={ 0 | 1 },_opacity,_color1,..
 

Flood-fill selected images using specified value and tolerance.
Default values : ´y=z=0´, ´tolerance=0´, ´is_high_connectivity=0´, ´opacity=1´ and ´color1=0´.
 

-graph [function_image],_plot_type,_vertex_type,_ymin,_ymax,_opacity,_pattern,_color1,.. |
´formula´,_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_opacity,_pattern,_color1,..
 

Draw specified function graph on selected images.
´plot_type´ can be { 0=none | 1=lines | 2=splines | 3=bar }.
´vertex_type´ can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
Default values : ´plot_type=1´, ´vertex_type=1´, ´ymin=ymax=0 (auto)´, ´opacity=1´, ´pattern=(undefined)´
and ´color1=0´.
 

-grid size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,..
 

Draw xy-grid on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
Default values : ´offset_x=offset_y=0´, ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-image [sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask
 

Draw specified sprite image on selected images.
(eq. to ´-j´).
Default values : ´x=y=z=c=0´, ´opacity=1´, ´sprite_mask=(undefined)´ and ´max_opacity_mask=1´.
 

-line x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,..´
 

Draw specified colored line on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
Default values : ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-mandelbrot z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={ 0 | 1 },_c0r,_c0i,_opacity
 

Draw mandelbrot/julia fractal on selected images.
Default values : ´iteration_max=100´, ´is_julia=0´, ´c0r=c0i=0´ and ´opacity=1´.
 

-object3d [object3d],_x[%],_y[%],_z,_opacity,_is_zbuffer={ 0 | 1 }
 

Draw specified 3d object on selected images.
Default values : ´x=y=z=0´, ´opacity=1´ and ´is_zbuffer=1´.
 

-plasma alpha,_beta,_scale>=0
 

Draw a random colored plasma on selected images.
Default values : ´beta=1´ and ´scale=8´.
 

-point x[%],y[%],_z[%],_opacity,_color1,..
 

Set specified colored pixel on selected images.
Default values : ´z=0´, ´opacity=1´ and ´color1=0´.
 

-polygon N,x1[%],y1[%],..,xN[%],yN[%],_opacity,_pattern,_color1,..
 

Draw specified colored N-vertices polygon on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified. If a pattern is specified, the polygon is
drawn outlined instead of filled.
Default values : ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-quiver [function_image],_sampling>0,_factor,_is_arrow={ 0 | 1 },_opacity,_pattern,_color1,..
 

Draw specified 2d vector/orientation field on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
Default values : ´sampling=25´, ´factor=-20´, ´is_arrow=1´, ´opacity=1´, ´pattern=(undefined)´
and ´color1=0´.
 

-spline x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_opacity,_pattern,_color1,..
 

Draw specified colored spline curve on selected images.
´pattern´ is an hexadecimal number starting with ´0x´ which can be omitted
even if a color is specified.
Default values : ´opacity=1´, ´pattern=(undefined)´ and ´color1=0´.
 

-text text,_x[%],_y[%],_font_height>=0,_opacity,_color1,..
 

Draw specified colored text string on selected images.
Exact pre-defined sizes are ´13´,´24´,´32´ and ´57´. Any other size is interpolated.
Specifying an empty target image resizes it to new dimensions such that the image contains
the entire text string.
Default values : ´opacity=1´ and ´color1=0´.
 

** Matrix computation :
 

-dijkstra starting_node>=0,ending_node>=0
 

Compute minimal distances and pathes from specified adjacency matrices by the Dijkstra algorithm.
 

-eigen
 

Compute the eigenvalues and eigenvectors of selected symmetric matrices or matrix fields.
If one selected image has 3 or 6 channels, it is regarded as a field of 2x2 or 3x3 symmetric matrices,
whose eigen elements are computed at each point of the field.
 

-invert
 

Compute the inverse of the selected matrices.
 

-solve [image]
 

Solve linear system AX = B for selected B-vectors and specified A-matrix.
If the system is under- or over-determined, least square solution is returned.
 

-svd
 

Compute SVD decomposition of selected matrices.
 

-trisolve [image]
 

Solve tridiagonal system AX = B for selected B-vectors and specified tridiagonal A-matrix.
Tridiagonal matrix must be stored as a 3 column vector, where 2nd column contains the
diagonal coefficients, while 1st and 3rd columns contain the left and right coefficients.
 

** 3d rendering :
 

-add3d tx,_ty,_tz |
[object3d] |
(noargs)
 

Shift selected 3d objects with specified displacement vector, or merge them with specified
3d object, or merge all selected 3d objects together.
(eq. to ´-+3d´).
Default values : ´ty=tz=0´.
 

-background3d R,_G,_B |
[image] |
(no args)
 

Define background from specified color or existing image for interactive 3d viewer.
(eq. to ´-b3d´).
(no args) resets the background to default.
 

-color3d R,_G,_B,_opacity
 

Set color and opacity of selected 3d objects.
(eq. to ´-col3d´).
Default value : ´opacity=(undefined)´.
 

-div3d factor |
factor_x,factor_y,_factor_z
 

Scale selected 3d objects isotropically or anisotropically, with the inverse of specified
factors.
(eq. to ´-/3d´).
Default value : ´factor_z=0´.
 

-double3d is_doubled={ 0 | 1 }
 

Enable/disable double-sided mode for 3d rendering.
(eq. to ´-db3d´).
 

-elevation3d (no args) |
z-factor |
[elevation] |
´formula´
 

Build 3d elevation of selected images, with a specified elevation map.
When invoked with (no args) or ´z-factor´, the elevation map is computed as the pointwise L2 norm of the
pixel values. Otherwise, the elevation map is taken from the specified image or formula.
 

-focale3d focale
 

Set 3d focale.
(eq. to ´-f3d´).
Set ´focale´ to 0 to enable parallel projection (instead of perspective).
Set negative ´focale´ will disable 3d sprite zooming.
 

-isoline3d isovalue[%] |
´formula´,value,_x0,_y0,_x1,_y1,_size_x>0[%],_size_y>0[%]
 

Extract 3d isolines with specified value from selected images or from specified formula.
Default values : ´x0=y0=-3´, ´x1=y1=3´ and ´size_x=size_y=256´.
 

-isosurface3d isovalue[%] |
´formula´,value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x>0[%],_size_y>0[%],_size_z>0[%]
 

Extract 3d isosurfaces with specified value from selected images or from specified formula.
Default values : ´x0=y0=z0=-3´, ´x1=y1=z1=3´ and ´size_x=size_y=size_z=32´.
 

-light3d position_x,position_y,position_z |
[texture] |
(no args)
 

Set the light coordinates or the light texture for 3d rendering.
(eq. to ´-l3d´).
(noargs) resets the 3d light to default.
 

-mode3d mode
 

Set static 3d rendering mode.
(eq. to ´-m3d´).
´mode´ can be { -1=bounding-box | 0=pointwise | 1=linear | 2=flat | 3=flat-shaded |
4=gouraud-shaded | 5=phong-shaded }.
Bounding-box mode (´mode==1´) is active only for the interactive 3d viewer.
 

-moded3d mode
 

Set dynamic 3d rendering mode for interactive 3d viewer.
(eq. to ´-md3d´).
´mode´ can be { -1=bounding-box | 0=pointwise | 1=linear | 2=flat | 3=flat-shaded |
4=gouraud-shaded | 5=phong-shaded }.
 

-mul3d factor |
factor_x,factor_y,_factor_z
 

Scale selected 3d objects isotropically or anisotropically, with specified factors.
(eq. to ´-*3d´).
Default value : ´factor_z=0´.
 

-opacity3d opacity
 

Set opacity of selected 3d objects.
(eq. to ´-o3d´).
 

-pose3d value1,..,value16 |
(noargs)
 

Set the coefficients of the 3d pose matrix.
(noargs) resets the 3d pose matrix to default.
 

-primitives3d mode
 

Convert primitives of selected 3d objects.
(eq. to ´-p3d´).
´mode´ can be { 0=points | 1=segments | 2=non-textured }.
 

-reverse3d
 

Reverse primitive orientations of selected 3d objects.
(eq. to ´-rv3d´).
 

-rotate3d u,v,w,angle
 

Rotate selected 3d objects around specified axis with specified angle (in deg.).
(eq. to ´-r3d´).
 

-specl3d value>=0
 

Set amount of 3d specular light.
(eq. to ´-sl3d´).
 

-specs3d value>=0
 

Set shininess of 3d specular light.
(eq. to ´-ss3d´).
 

-sphere3d radius,_nb_recursions>=0
 

Input 3d sphere at (0,0,0), with specified geometry.
Default value : ´nb_recursions=3´.
 

-split3d
 

Split selected 3d objects into 6 feature vectors :
{ header, sizes, vertices, primitives, colors, opacities }.
(eq. to ´-s3d´).
To recreate the 3d object, append these 6 images along the y-axis.
 

-streamline3d x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 } |
´formula´,x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 }
 

Extract 3d streamlines from selected vector fields or from specified formula.
´interpolation´ can be { 0=nearest integer | 1=1st-order | 2=2nd-order | 3=4th-order }.
Default values : ´dl=0.1´, ´interpolation=2´, ´is_backward=0´ and ´is_oriented=0´.
 

-sub3d tx,_ty,_tz
 

Shift selected 3d objects with the opposite of specified displacement vector.
(eq. to ´--3d´).
Default values : ´ty=tz=0´.
 

-texturize3d [ind_texture],_[ind_coords]
 

Texturize selected 3d objects with specified texture and coordinates.
(eq. to ´-t3d´).
When ´[ind_coords]´ is omitted, default XY texture projection is performed.
Default value : ´ind_coords=(undefined)´.
 

** Program controls :
 

-check expression (*)
 

Evaluate specified expression and display an error message if evaluated to false.
If ´expression´ is not evaluable, it is regarded as a filename and checked if it exists.
 

-continue (*)
 

Continue to next iteration of current ´repeat..done´, ´do..while´ or ´local..endlocal´ block.
 

-break (*)
 

Break current ´repeat..done´, ´do..while´ or ´local..endlocal´ block.
 

-do (*)
 

Start a ´do..while´ block.
 

-done (*)
 

End a ´repeat..done´ block, and go to associated ´-repeat´ position, if iterations remain.
 

-elif boolean | (*)
filename
 

Start a ´elif..[else]..endif´ block if previous ´-if´ was not verified
and test if specified boolean is true, or if specified filename exists.
´boolean´ can be a float number standing for { 0=false | other=true }.
 

-else (*)
 

Execute following commands if previous ´-if´ or ´-elif´ conditions failed.
 

-endif (*)
 

End a ´if..[elif]..[else]..endif´ block.
 

-endlocal (*)
 

End a ´local..endlocal´ block.
(eq. to ´-endl´).
 

-error message (*)
 

Print specified error message on the standard output and exit interpreter, except
if error is caught by a ´-onfail´ command.
Command subset (if any) stands for displayed scope indices instead of image indices.
 

-exec command (*)
 

Execute external command using a system call.
The status value is then set to the error code returned by the system call.
(eq. to ´-x´).
 

-if boolean | (*)
filename
 

Start a ´if..[elif]..[else]..endif´ block and test if specified boolean is true,
or if specified filename exists.
´boolean´ can be a float number standing for { 0=false | other=true }.
 

-local (*)
 

Start a ´local..[onfail]..endlocal´ block, with selected images.
(eq. to ´-l´).
 

-onfail (*)
 

Execute following commands when an error is encountered in the body of the ´local..endlocal´ block.
The status value is set with the corresponding error message.
 

-progress 0<=value<=100 | (*)
-1
 

Set the progress indice of the current processing pipeline.
This command is useful only when G´MIC is used by an embedding application.
 

-quit (*)
 

Quit interpreter.
(eq. to ´-q´).
 

-repeat nb_iterations (*)
 

Start iterations of a ´repeat..done´ block.
 

-return (*)
 

Return from current custom command.
 

-skip item (*)
 

Do nothing but skip specified item.
 

-status item | (*)
$variable
 

Set current status value to the specified item or from the value of the
specified environment variable.
(eq. to ´-u´).
 

-while boolean | (*)
filename
 

End a ´do..while´ block and go back to associated ´-do´
if specified boolean is true or if specified filename exists.
´boolean´ can be a float number standing for { 0=false | other=true }.
 

** Native commands shortcuts :
 

-h eq. to ´-help´. (*)
-m eq. to ´-command´. (*)
-d eq. to ´-display´.
-d3d eq. to ´-display3d´.
-e eq. to ´-echo´. (*)
-i eq. to ´-input´. (*)
-o eq. to ´-output´. (*)
-p eq. to ´-print´. (*)
-sh eq. to ´-shared´. (*)
-v eq. to ´-verbose´. (*)
-w eq. to ´-window´.
-k eq. to ´-keep´. (*)
-mv eq. to ´-move´. (*)
-nm eq. to ´-name´. (*)
-rm eq. to ´-remove´. (*)
-rv eq. to ´-reverse´. (*)
-+ eq. to ´-add´.
-<< eq. to ´-bsl´.
->> eq. to ´-bsr´.
-/ eq. to ´-div´.
-== eq. to ´-eq´.
->= eq. to ´-ge´.
-> eq. to ´-gt´.
-<= eq. to ´-le´.
-< eq. to ´-lt´.
-// eq. to ´-mdiv´.
-% eq. to ´-mod´.
-** eq. to ´-mmul´.
-* eq. to ´-mul´.
-!= eq. to ´-neq´.
-^ eq. to ´-pow´.
-- eq. to ´-sub´.
-c eq. to ´-cut´.
-f eq. to ´-fill´.
-n eq. to ´-normalize´.
-= eq. to ´-set´.
-t eq. to ´-threshold´.
-a eq. to ´-append´. (*)
-z eq. to ´-crop´. (*)
-r eq. to ´-resize´. (*)
-s eq. to ´-split´. (*)
-y eq. to ´-unroll´. (*)
-b eq. to ´-blur´.
-g eq. to ´-gradient´.
-j eq. to ´-image´.
-+3d eq. to ´-add3d´.
-b3d eq. to ´-background3d´.
-col3d eq. to ´-color3d´.
-/3d eq. to ´-div3d´.
-db3d eq. to ´-double3d´.
-f3d eq. to ´-focale3d´.
-l3d eq. to ´-light3d´.
-m3d eq. to ´-mode3d´.
-md3d eq. to ´-moded3d´.
-*3d eq. to ´-mul3d´.
-o3d eq. to ´-opacity3d´.
-p3d eq. to ´-primitives3d´.
-rv3d eq. to ´-reverse3d´.
-r3d eq. to ´-rotate3d´.
-sl3d eq. to ´-specl3d´.
-ss3d eq. to ´-specs3d´.
-s3d eq. to ´-split3d´.
--3d eq. to ´-sub3d´.
-t3d eq. to ´-texturize3d´.
-endl eq. to ´-endlocal´. (*)
-q eq. to ´-quit´. (*)
-l eq. to ´-local´. (*)
-u eq. to ´-status´. (*)
-x eq. to ´-exec´. (*)
 

List of default custom commands
-------------------------------
 

The default custom G´MIC commands are listed below, classified by themes.
Those commands are defined in the default custom commands file, located at
´http://gmic.sourceforge.net/gmic_def.xxxx´, where ´xxxx´ are the 4 digits
of the current G´MIC version number. These custom commands are recognized
by default by the G´MIC interpreter.
 

** Inputs / outputs :
 

-apply_camera _command,_camera_index>=-1,_skip_frames>=0,_output_filename
 

Apply specified command on live camera stream, and display it on display window [0].
Default values : ´command=
 

-d0 eq. to ´-display0´.
-display0
 

Display selected images without value normalization.
(eq. to ´-d0´).
 

-da eq. to ´-display_array´.
-display_array _width>0,_height>0
 

Display images in interactive windows where pixel neighborhoods can be explored.
Default values : ´width=13´ and ´height=width´.
 

-dfft eq. to ´-display_fft´.
-display_fft
 

Display fourier transform of selected images, with centered log-module and argument.
(eq. to ´-dfft´).
 

-dg eq. to ´-display_graph´.
-display_graph _width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax
 

Render graph plot from selected image data.
Default values : ´width=640´, ´height=480´, ´plot_type=1´, ´vertex_type=1´ and ´xmin=xmax=ymin=ymax=0´.
 

-dh eq. to ´-display_histogram´.
-display_histogram _width>0,_height>0,_clusters>0,_min_value[%],_max_value[%],_show_axes={ 0 | 1 }
 

Render a channel-by-channel histogram.
(eq. to ´-dh´).
Default values : ´width=512´, ´height=300´, ´clusters=256´, ´min_value=0%´, ´max_value=100%´ and ´show_axes=1´.
 

-dp eq. to ´-display_polar´.
-display_polar _width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end
 

Render polar curve from selected image data.
´outline_type´ can be { r<0=dots with radius -r | 0=no outline | r>0=lines+dots with radius r }.
´fill_color´ can be { -1=no fill | R,G,B=fill with specified color }.
Default values : ´width=500´, ´height=width´, ´outline_type=1´, ´fill_R=fill_G=fill_B=200´, ´theta_start=0´ and ´theta_end=360´.
 

-drgba eq. to ´-display_rgba´.
-display_rgba
 

Render selected RGBA images over a checkerboard background.
(eq. to ´-drgba´).
 

-dt eq. to ´-display_tensors´.
-display_tensors _size_factor>0,_ellipse_factor>=0,_colored_mode={ 0 | 1 }
 

Render selected mask field of 2x2 tensors with ellipses.
(eq. to ´-dt´).
Default values : ´size_factor=16´, ´ellipse_factor=0.92´, ´color_mode=1´.
 

-dw eq. to ´-display_warp´.
-display_warp _cell_size>0
 

Render selected 2d warping fields.
(eq. to ´-dw´).
Default value : ´cell_size=15´.
 

-function1d 0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn
 

Generate continuous 1d function from specified list of keypoints (xk,yk)
in range [0,max(xk)] (xk are positive integers).
Default values : ´smoothness=1´ and ´x0=y0=0´.
 

-gmicky
 

Load a new image of the G´MIC mascot ´Gmicky´.
 

-gmicky_wilber
 

Load a new image of the G´MIC mascot ´Gmicky´ together with GIMP mascot ´Wilber´.
 

-img2text _line_separator
 

Return text contained in a multi-line image.
Default value : ´line_separator= ´.
 

-on eq. to ´-outputn´.
-outputn filename
 

Output selected images as automatically numbered filenames in repeat..done loops.
(eq. to ´-on´).
 

-op eq. to ´-outputp´.
-outputp prefix
 

Output selected images as prefixed versions of their original filenames.
(eq. to ´-op´).
Default value : ´prefix=_´.
 

-ow eq. to ´-outputw´.
-outputw
 

Output selected images by overwritting their original location.
(eq. to ´-ow´).
 

-rainbow_lut
 

Generate a 256-entries RGB colormap of rainbow colors.
 

-roddy
 

Load a new image of the G´MIC Rodilius mascot ´Roddy´.
 

-rm_duplicates
 

Remove duplicates images in the selected images list.
 

-sort_list _ordering={ + | - },_x,_y,_z,_c
 

Sort list of selected images according to their value located at (x,y,z,c).
Default values : ´ordering=+´, ´x=0´, ´y=0´, ´z=0´ and ´c=0´.
 

-testimage2d _width>0,_height>0,_spectrum>0
 

Generate a synthetic image.
Default values : ´width=512´, ´height=width´ and ´spectrum=3´.
 

-text2img text,_line_separator
 

Generate a new 2d image where values are ASCII characters of specified input text.
Default value : ´line_separator= ´.
 

-up eq. to ´-update´.
-update
 

Update commands from the latest definition file on the G´MIC server.
This requires an active Internet connection and an access to the external
tools ´curl´ or ´wget´.
(eq. to ´-up´).
 

** Values manipulation :
 

-apply_curve 0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN
 

Apply curve transformation to image values.
Default values : ´smoothness=1´, ´x0=0´, ´y0=100´.
 

-apply_gamma gamma>=0
 

Apply gamma correction to selected images.
 

-balance_gamma _ref_color1,...
 

Apply color balance transformation on selected image, with respect to specified reference color.
Default values : ´ref_color1=128´.
 

-complex2polar
 

Compute complex to polar transforms of selected images.
 

-cumul
 

Compute the cumulative function of specified image data.
 

-discard value,_remove_if_not_found = { 0 | 1 }.
 

Remove specified value in selected images and return results as single-column vector.
Default value : ´remove_if_not_found´=0.
 

-eigen2tensor
 

Recompose selected pairs of eigenvalues/eigenvectors as 2x2 or 3x3 tensor fields.
 

-float2int8
 

Convert selected float-valued images to 8bits integer representations.
 

-int82float
 

Convert selected 8bits integer representations to float-valued images.
 

-mix_channels (a00,...,aMN)
 

Apply specified matrix to channels of selected images.
 

-negative
 

Compute negative of selected images.
 

-norm
 

Compute the pointwise euclidean norm of vector-valued pixels in selected images.
 

-normalize_sum
 

Normalize selected images with a unitary sum.
 

-orientation
 

Compute the pointwise orientation of vector-valued pixels in selected images.
 

-otsu _nb_levels>0
 

Hard-threshold image using Otsu´s method.
Default value : ´nb_levels=256´.
 

-polar2complex
 

Compute polar to complex transforms of selected images.
 

-quantize nb_levels>=1,_preserve_value_range={ 0 | 1 }
 

Uniformly quantize selected images.
Default value : ´preserve_value_range=1´.
 

-replace value_src,value_dest
 

Replace pixel values in selected images.
 

-replace_inf _expression
 

Replace all infinite values in selected images by specified expression.
 

-replace_nan _expression
 

Replace all NaN values in selected images by specified expression.
 

-replace_seq
 

Search and replace a sequence of values in selected images.
 

-roundify gamma>=0
 

Apply roundify transformation on float-valued data, with specified gamma.
Default value : ´gamma=0´.
 

-t2 eq. to ´-threshold2´.
-threshold2 min[%],max[%]
 

Threshold selected images between the two given values.
(eq. to ´-t2´).
 

-vector2tensor
 

Convert selected vector fields to corresponding diffusion tensor fields.
 

** Colors manipulation :
 

-apply_channels
 

Apply specified command on chosen normalized channels of each selected images.
Default value : ´normalize=0´.
 

-autoindex nb_colors>0,_dithering>=0,_method={ 0=median-cut | 1=k-means }
 

Index selected vector-valued images by adapted colormaps.
Default values : ´dithering=0´ and ´method=0´.
 

-bayer2rgb _GM_smoothness,_RB_smoothness1,_RB_smoothness2
 

Transform selected RGB-Bayer sampled images to color images.
Default values : ´GM_smoothness=RB_smoothness=1´ and ´RB_smoothness2=0.5´.
 

-colormap nb_colors>0,_method={ 0=median-cut | 1=k-means }
 

Estimate best-fitting colormap with ´nb_colors´ entries, to index selected images.
Default value : ´method=0´.
 

-direction2rgb
 

Compute RGB representation of selected 2d direction fields.
 

-ditheredbw
 

Create dithered B&W version of selected images.
 

-fc eq. to ´-fill_color´.
-fill_color col1,...,colN
 

Fill selected images with specified color.
(eq. to ´-fc´).
 

-gradient2rgb _orientation={ 0 | 1 }
 

Compute RGB representation of 2d gradient of selected images.
Default value : ´orientation=0´.
 

-hsi82rgb
 

Convert selected images from HSI8 to RGB color bases.
 

-hsl82rgb
 

Convert selected images from HSL8 to RGB color bases.
 

-hsv82rgb
 

Convert selected images from HSV8 to RGB color bases.
 

-lab2lch
 

Convert selected images from Lab to Lch color bases.
 

-lab82rgb
 

Convert selected images from Lab8 to RGB color bases.
 

-lch2lab
 

Convert selected images from Lch to Lab color bases.
 

-lch2rgb
 

Convert selected images from Lch to RGB color bases.
 

-lch82rgb
 

Convert selected images from Lch8 to RGB color bases.
 

-luminance
 

Compute luminance of selected images.
 

-mix_rgb a11,a12,a13,a21,a22,a23,a31,a32,a33
 

Apply 3x3 specified matrix to RGB colors of selected images.
Default values : ´a11=1´, ´a12=a13=a21=0´, ´a22=1´, ´a23=a31=a32=0´ and ´a33=1´.
 

-remove_opacity
 

Remove opacity channel of selected images.
 

-replace_color tolerance[%]>=0,_smoothness[%]>=0,src1,...,srcN,dest1,...,destN
 

Replace pixels from/to specified colors in selected images.
 

-rgb2bayer _start_pattern=0,_color=0
 

Transform selected color images to RGB-Bayer sampled images.
Default values : ´start_pattern=0´ and ´color=0´.
 

-rgb2hsi8
 

Convert selected images from RGB to HSI8 color bases.
 

-rgb2hsl8
 

Convert selected images from RGB to HSL8 color bases.
 

-rgb2hsv8
 

Convert selected images from RGB to HSV8 color bases.
 

-rgb2lab8
 

Convert selected images from RGB to Lab8 color bases.
 

-rgb2lch
 

Convert selected images from RGB to Lch color bases.
 

-rgb2lch8
 

Convert selected images from RGB to Lch8 color bases.
 

-rgb2xyz8
 

Convert selected images from RGB to XYZ8 color bases.
 

-rgb2yuv8
 

Convert selected images from RGB to YUV8 color bases.
 

-select_color tolerance[%]>=0,col1,..,colN
 

Select pixels with specified color in selected images.
 

-sepia
 

Apply sepia tones effect on selected images.
 

-solarize
 

Solarize selected images.
 

-split_opacity
 

Split color and opacity parts of selected images.
 

-to_a
 

Force selected images to have an alpha channel.
 

-to_colormode mode={ 0=adaptive | 1=G | 2=GA | 3=RGB | 4=RGBA }
 

Force selected images to be in a given color mode.
Default value : ´mode=0´.
 

-to_gray
 

Force selected images to be in GRAY mode.
 

-to_graya
 

Force selected images to be in GRAYA mode.
 

-to_pseudogray
 

Convert selected (float-valued) scalar images to (int-valued) pseudo-gray color images.
The pseudo-gray technique has been introduced by Rich Franzen [http://r0k.us/graphics/pseudoGrey.html].
 

-to_rgb
 

Force selected images to be in RGB mode.
 

-to_rgba
 

Force selected images to be in RGBA mode.
 

-transfer_colors _transfer_brightness={ 0 | 1 }
 

Transfer colors of the first selected image to the other ones.
Default value : ´transfer_brightness=0´.
 

-xyz82rgb
 

Convert selected images from XYZ8 to RGB color bases.
 

-yuv82rgb
 

Convert selected images from YUV8 to RGB color bases.
 

** Geometry manipulation :
 

-append_tiles M>=0,_N>=0
 

Append MxN selected tiles as a new image.
If argument ´M´ is set to ´0´, horizontal auto-mode is used.
If argument ´N´ is set to ´0´, vertical auto-mode is used.
Default values : ´M=0´ and ´N=1´.
 

-diagonal
 

Transform selected vectors as diagonal matrices.
 

-elevate _depth,_is_plain,_is_colored
 

Elevate selected 2d images into 3d volumes.
Default values : ´depth=64´, ´is_plain=1´ and ´is_colored=1´.
 

-expand_x size_x>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Expand selected images along the X-axis.
Default value : ´border=1´.
 

-expand_xy size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Expand selected images along the XY-axes.
Default value : ´border=1´.
 

-expand_xyz size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Expand selected images along the XYZ-axes.
Default value : ´border=1´.
 

-expand_y size_y>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Expand selected images along the Y-axis.
Default value : ´border=1´.
 

-expand_z size_z>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Expand selected images along the Z-axis.
Default value : ´border=1´.
 

-rr2d eq. to ´-resize_ratio2d´.
-resize_ratio2d width>0,height>0,_mode={ 0=inside | 1=outside | 2=padded },0=<_interpolation<=6
 

Resize selected images while preserving their aspect ratio.
(eq. to ´-rr2d´).
Default values : ´mode=0´ and ´interpolation=6´.
 

-r2dx eq. to ´-resize2dx´.
-resize2dx width>0,_interpolation={0,1,2,3,4,5,6}
 

Resize selected images along the X-axis, preserving 2d ratio.
(eq. to ´-r2dx´).
Default value : ´interpolation=2´.
 

-r2dy eq. to ´-resize2dy´.
-resize2dy height>0,_interpolation={0,1,2,3,4,5,6}
 

Resize selected images along the Y-axis, preserving 2d ratio.
(eq. to ´-r2dy´).
Default value : ´interpolation=2´.
 

-r3dx eq. to ´-resize3dx´.
-resize3dx width>0,_interpolation={0,1,2,3,4,5,6}
 

Resize selected images along the X-axis, preserving 3d ratio.
(eq. to ´-r3dx´).
Default value : ´interpolation=2´.
 

-r3dy eq. to ´-resize3dy´.
-resize3dy height>0,_interpolation={0,1,2,3,4,5,6}
 

Resize selected images along the Y-axis, preserving 3d ratio.
(eq. to ´-r3dy´).
Default value : ´interpolation=2´.
 

-r3dz eq. to ´-resize3dz´.
-resize3dz depth>0,_interpolation={0,1,2,3,4,5,6}
 

Resize selected images along the Z-axis, preserving 3d ratio.
(eq. to ´-r3dz´).
Default value : ´interpolation=2´.
 

-rotate_tileable angle,_max_size_factor>=0
 

Rotate selected images by specified angle and make them tileable.
If resulting size of an image is too big, the image is replaced by a 1x1 image.
Default values : ´max_size_factor=8´.
 

-shrink_x size_x>=0
 

Shrink selected images along the X-axis.
 

-shrink_xy size>=0
 

Shrink selected images along the XY-axes.
 

-shrink_y size_y>=0
 

Shrink selected images along the Y-axis.
 

-shrink_z size_z>=0
 

Shrink selected images along the Z-axis.
 

-split_tiles M!=0,_N!=0,_is_homogeneous={ 0 | 1 }
 

Split selected images as a MxN array of tiles.
Default values : ´N=M´ and ´is_homogeneous=0´.
 

-transpose
 

Transpose selected matrices.
 

-upscale_smart width,_height,_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0
 

Upscale selected images with an edge-preserving algorithm.
Default values : ´height=100%´, ´depth=100%´, ´smoothness=2´, ´anisotropy=0.4´ and ´sharpening=10´.
 

** Filtering :
 

-bandpass _min_freq[%],_max_freq[%]
 

Apply bandpass filter to selected images.
Default values : ´min_freq=0´ and ´max_freq=20%´.
 

-blur_angular amplitude[%],_cx,_cy
 

Apply angular blur on selected images.
Default values : ´cx=cy=0.5´.
 

-blur_linear amplitude1[%],_amplitude2[%],_angle,_boundary={ 0=dirichlet | 1=neumann }
 

Apply linear blur on selected images, with specified angle and amplitudes.
Default values : ´amplitude2=0´, ´angle=0´ and ´boundary=1´.
 

-blur_radial amplitude[%],_cx,_cy
 

Apply radial blur on selected images.
Default values : ´cx=cy=0.5´.
 

-blur_x amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann }
 

Blur selected images along the X-axis.
Default value : ´boundary=1´.
 

-blur_xy amplitude_x[%],amplitude_y[%],_boundary={ 0=dirichlet | 1=neumann }
 

Blur selected images along the X and Y axes.
Default value : ´boundary=1´.
 

-blur_xyz amplitude_x[%],amplitude_y[%],amplitude_z,_boundary={ 0=dirichlet | 1=neumann }
 

Blur selected images along the X, Y and Z axes.
Default value : ´boundary=1´.
 

-blur_y amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann }
 

Blur selected images along the Y-axis.
Default value : ´boundary=1´.
 

-blur_z amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann }
 

Blur selected images along the Z-axis.
Default value : ´boundary=1´.
 

-compose_freq
 

Compose selected low and high frequency parts into new images.
 

-convolve_fft
 

Convolve selected images two-by-two through fourier transforms.
 

-cross_correlation
 

Compute cross-correlation using two-by-two selected images.
 

-curvature
 

Compute isophote curvatures on selected images.
 

-deinterlace _method={ 0 | 1 }
 

Deinterlace selected images (´method´ can be { 0=standard or 1=motion-compensated }).
Default value : ´method=0´.
 

-deconvolve_fft
 

Deconvolve selected images two-by-two through fourier transforms.
 

-dilate_circ _size>=0,_boundary,_is_normalized={ 0 | 1 }
 

Apply circular dilation of selected image by specified size.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-dilate_oct _size>=0,_boundary,_is_normalized={ 0 | 1 }
 

Apply octagonal dilation of selected image by specified size.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-divergence
 

Compute divergence of selected vector fields.
 

-dog _sigma1>=0[%],_sigma2>=0[%]
 

Compute difference of gaussian on selected images.
Default values : ´sigma1=2%´ and ´sigma2=3%´.
 

-edges _threshold[%]>=0
 

Estimate contours of selected images.
Default value : ´edges=15%´
 

-diffusiontensors _sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={ 0 | 1 }
 

Compute the diffusion tensors of selected images for edge-preserving smoothing algorithms.
Default values : ´sharpness=0.7´, ´anisotropy=0.3´, ´alpha=0.6´, ´sigma=1.1´ and ´is_sqrt=0´.
 

-erode_circ _size>=0,_boundary,_is_normalized={ 0 | 1 }
 

Apply circular erosion of selected images by specified size.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-erode_oct _size>=0,_boundary,_is_normalized={ 0 | 1 }
 

Apply octagonal erosion of selected images by specified size.
Default values : ´boundary=1´ and ´is_normalized=0´.
 

-gradient_orientation _dimension={1,2,3}
 

Compute N-D gradient orientation of selected images.
Default value : ´dimension=3´.
 

-gradient_norm
 

Compute gradient norm of selected images.
 

-heat_flow _nb_iter>=0,_dt,_keep_sequence={ 0 | 1 }
 

Apply iterations of the heat flow on selected images.
Default values : ´nb_iter=10´, ´dt=30´ and ´keep_sequence=0´.
 

-iee
 

Compute gradient-orthogonal-directed 2nd derivative of image(s).
 

-inn
 

Compute gradient-directed 2nd derivative of image(s).
 

-inpaint_flow _nb_iter1>=0,_nb_iter2>=0,_dt>=0,_alpha,_sigma
 

Apply iteration of the inpainting flow on selected images.
Default values : ´nb_iter1=4´, ´nb_iter2=15´, ´dt=15´, ´alpha=1´ and ´sigma=3´.
 

-kuwahara size>0
 

Apply Kuwahara filter of specified size on selected images.
 

-laplacian
 

Compute Laplacian of selected images.
 

-lic _amplitude>0,_channels>0
 

Generate LIC representation of vector field.
Default values : ´amplitude=30´ and ´channels=1´.
 

-map_tones _threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0
 

Apply tone mapping operator on selected images, based on Poisson equation.
Default values : ´threshold=0.1´, ´gamma=0.8´, ´smoothness=0.5´ and ´nb_iter=30´.
 

-map_tones_fast _radius[%]>=0,_power>=0
 

Apply fast tone mapping operator on selected images.
Default values : ´radius=3%´ and ´power=0.3´.
 

-meancurvature_flow _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 }
 

Apply iterations of the mean curvature flow on selected images.
Default values : ´nb_iter=10´, ´dt=30´ and ´keep_sequence=0´.
 

-normalize_local _amplitude>=0,_radius>0,_n_smooth>=0[%],_a_smooth>=0[%],_is_cut={ 0 | 1 },_min=0,_max=255
 

Normalize selected images locally.
Default values : ´amplitude=3´, ´radius=16´, ´n_smooth=4%´, ´a_smooth=2%´, ´is_cut=1´, ´min=0´ and ´max=255´.
 

-normalized_cross_correlation
 

Compute normalized cross-correlation using two-by-two selected images.
 

-phase_correlation
 

Estimate translation vector using two-by-two selected images.
 

-pde_flow _nb_iter>=0,_dt,_velocity_command,_keep_sequence={ 0 | 1 }
 

Apply iterations of a generic PDE flow on selected images.
Default values : ´nb_iter=10´, ´dt=30´, ´velocity_command=laplacian´ and ´keep_sequence=0´.
 

-red_eye 0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1
 

Attenuate red-eye effect in selected images.
Default values : ´threshold=75´, ´smoothness=3.5´ and ´attenuation=0.1´.
 

-remove_hotpixels _mask_size>0, _threshold[%]>0
 

Remove hot pixels in selected images.
Default values : ´mask_size=3´ and ´threshold=10%´.
 

-remove_pixels density>=0,_pixel_sum>=0
 

Remove (i.e. set to 0) specified density (in percent) of non-zero pixels to 0.
Specified density is regarded against ´pixel_sum´ except if it is set to ´0´
(in this case, ´pixel_sum´ has default value ´width*height´).
Default value : ´density=10´, ´pixel_sum=0´.
 

-richardson_lucy amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={ 0=Tikhonov | 1=meancurv. | 2=TV }
 

Deconvolve image with the iterative Richardson-Lucy algorithm.
Default values : ´nb_iter=10´, ´dt=20´, ´regul=0.7´ and ´regul_type=1´.
 

-split_freq smoothness>0[%]
 

Split selected images into low and high frequency parts.
 

-solidify
 

Replace transparent regions of a RGBA image by morphologically interpolated color.
 

-solidify_linear _sigma>=1,_dsigma>=1,0<=_precision<=1
 

Replace transparent regions of a RGBA image by linearly interpolated color.
Default values : ´sigma=1.5´, ´dsigma=1´ and ´precision=0.5´.
 

-tv_flow _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 }
 

Apply iterations of the total variation flow on selected images.
Default values : ´nb_iter=10´, ´dt=30´ and ´keep_sequence=0´.
 

-unsharp radius[%]>=0,_amount>=0,_threshold[%]>=0
 

Apply unsharp mask on selected images.
Default values : ´amount=2´ and ´threshold=0´.
 

-unsharp_octave _nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0
 

Apply octave sharpening on selected images.
Default values : ´nb_scales=4´, ´radius=1´, ´amount=2´ and ´threshold=0´.
 

-watermark_fourier text,_size>0
 

Add an textual watermark in the frequency domain of selected images.
Default value : ´size=32´.
 

** Features extraction :
 

-area tolerance>=0,is_high_connectivity={ 0 | 1 }
 

Compute area of connected components in selected images.
Default values : ´is_high_connectivity=0´.
 

-area_fg tolerance>=0,is_high_connectivity={ 0 | 1 }
 

Compute area of connected components for non-zero values in selected images.
Similar to ´-area´ except that 0-valued pixels are not considered.
Default values : ´is_high_connectivity=0´.
 

-float2fft8
 

Convert selected float-valued images to 8bits fourier representations.
 

-fft82float
 

Convert selected 8bits fourier representations to float-valued images.
 

-fftpolar
 

Compute fourier transform of selected images, as centered magnitude/phase images.
 

-histogram_cumul _nb_levels>0,_is_normalized={ 0 | 1 },_val0[%],_val1[%]
 

Compute cumulative histogram of selected images.
Default values : ´nb_levels=256´, ´is_normalized=0´ and ´val0=val1=0´.
 

-hough _width>0,_height>0,gradient_norm_voting={ 0 | 1 }
 

Compute hough transform (theta,rho) of selected images.
Default values : ´width=512´, ´height=width´ and ´gradient_norm_voting=1´.
 

-ifftpolar
 

Compute inverse fourier transform of selected images, from centered magnitude/phase images.
 

-isophotes _nb_levels>0
 

Render isophotes of selected images on a transparent background.
Default value : ´nb_levels=64´
 

-label_fg tolerance>=0,is_high_connectivity={ 0 | 1 }
 

Label connected components for non-zero values (foreground) in selected images.
Similar to ´-label´ except that 0-valued pixels are not labeled.
Default value : ´is_high_connectivity=0´.
 

-max_patch _patch_size>=1
 

Return locations of maximal values in local patch-based neighborhood of given size for selected images.
Default value : ´patch_size=16´.
 

-min_patch _patch_size>=1
 

Return locations of minimal values in local patch-based neighborhood of given size for selected images.
Default value : ´patch_size=16´.
 

-minimal_path x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0
 

Compute minimal path between two points on selected potential maps.
 

-plot2value
 

Retrieve values from selected 2d graph plots.
 

-pointcloud _type = { -X=-X-opacity | 0=binary | 1=cumulative | 2=label }
 

Convert a Nx1, Nx2, Nx3 or NxM image as a point cloud in a 1d/2d or 3d binary image.
If ´M´>3, the 3-to-M lines sets the (M-3)-dimensional color at each point.
Default value : ´type=0´.
 

-segment_watershed _threshold>=0,_keep_watershed={ 0 | 1 }
 

Apply watershed segmentation on selected images.
Default values : ´threshold=2´ and ´keep_watershed=1´.
 

-skeleton _smoothness[%]>=0
 

Compute skeleton of binary shapes using distance transform.
Default value : ´smoothness=0´.
 

-thinning
 

Compute skeleton of binary shapes using morphological thinning
(This is a quite slow iterative proces)
 

-tones N>0
 

Get N tones masks from selected images.
 

-topographic_map _nb_levels>0,_smoothness
 

Render selected images as topographic maps.
Default values : ´nb_levels=16´ and ´smoothness=2´.
 

** Image drawing :
 

-ball _R,_G,_B
 

Draw a colored RGBA ball sprite on selected images.
Default values : ´R=255´, ´G=R´ and ´B=R´.
 

-chessboard size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,..,_color2,..
 

Draw chessboard on selected images.
Default values : ´size2=size1´, ´offset1=offset2=0´, ´angle=0´, ´opacity=1´, ´color1=0´ and ´color2=255´.
 

-gaussian _sigma1[%],_sigma2[%],_angle
 

Draw a centered gaussian on selected images, with specified standard deviations and orientation.
Default values : ´sigma1=3´, ´sigma2=sigma1´ and ´angle=0´.
 

-marble _image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0
 

Generate a marble like pattern.
Default values : ´image_weight=0.2´, ´pattern_weight=0.1´, ´angle=45´, ´amplitude=0´, ´sharpness=0.4´, ´anisotropy=0.8´,
´alpha=0.6´, ´sigma=1.1´ and ´cut_low=cut_high=0´.
 

-maze _width>0,_height>0,_cell_size>0
 

Generate maze with specified size.
 

-maze_mask _cellsize>0
 

Generate maze according to size and shape of selected mask images.
Mask may contain disconnected shapes.
 

-piechart label_height>=0,label_R,label_G,label_B,
 

Draw pie chart on selected (RGB) images.
 

-polka_dots diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,...
 

Draw dots pattern on selected images.
Default values : ´density=20´, ´offset1=offset2=50´, ´angle=0´, ´aliasing=10´, ´shading=1´, ´opacity=1´ and ´color=255´.
 

-rorschach ´smoothness[%]>=0´,´mirroring={ 0=none | 1=x | 2=y | 3=xy }
 

Render rorschach-like inkblots on selected images.
Default values : ´smoothness=5%´ and ´mirroring=1´.
 

-sierpinski recursion_level>=0
 

Draw Sierpinski triangle on selected images.
Default value : ´recursion_level=7´.
 

-snowflake _recursion>=0,_x0,_y0,_x1,_y1,_x2,_y2,_opacity,_col1,..._colN
 

Draw a Koch snowflake on selected images.
Default values : ´recursion=4´, ´x0=20´, ´y0=70´, ´x1=80´, ´y1=70´, ´x2=50´, ´y2=10´, ´opacity=1´ and ´col1=255´.
 

-text_outline text,_x[%],_y[%],_font_height>0,_outline>=0,_opacity,_color1,..
 

Draw specified colored and outlined text string on selected images.
Default values : ´x=y=2´, ´font_height=13´, ´outline=2´, ´opacity=1´ and ´color1=255´.
 

-triangle_shade x0,y0,x1,y0,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,....
 

Draw triangle with interpolated colors on selected images.
 

-truchet _scale>0,_radius>=0,_pattern_type={ 0=straight | 1=curved }
 

Fill selected images with random truchet patterns.
Default values : ´scale=32´, ´radius=5´ and ´pattern_type=1´.
 

-turbulence _radius>0,_octaves={1,2,3...,12},_alpha>0,_difference={-10,10},_mode={0,1,2,3}
 

Generate fractal noise or turbulence.
Default values : ´radius=32´, ´octaves=6´, ´alpha=3´, ´difference=0´ and ´mode=0´.
 

-yinyang
 

Draw a yin-yang symbol on selected images.
 

** 3d rendering :
 

-animate3d _width>0,_height>0,_dx,_dy,_dz,_zoom>=0,_filename
 

Animate selected 3d objects in a window.
 

-apply_camera3d pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z
 

Apply 3d camera matrix to selected 3d objects.
Default values : ´target_x=0´, ´target_y=0´, ´target_z=0´, ´up_x=0´, ´up_y=-1´ and ´up_z=0´.
 

-apply_pose3d p1,..,p12
 

Apply 3d pose matrix to selected 3d objects.
 

-axes3d _size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z
 

Input 3d axes with specified sizes along the x,y and z orientations.
Default values : ´size_x=size_y=size_z=1´, ´font_size=24´, ´label_x=X´, ´label_y=Y´ and ´label_z=Z´.
 

-box3d _size_x,_size_y,_size_z
 

Input 3d box at (0,0,0), with specified geometry.
Default values : ´size_x=1´ and ´size_z=size_y=size_x´.
 

-c3d eq. to ´-center3d´.
-center3d
 

Center selected 3d objects at (0,0,0).
(eq. to ´-c3d´).
 

-circle3d _x0,_y0,_z0,_radius>=0
 

Input 3d circle at specified coordinates.
Default values : ´x0=y0=z0=0´ and ´radius=1´.
 

-circles3d _radius>=0
 

Convert specified 3d objects to sets of 3d circles with specified radius.
 

-colorcube3d
 

Input 3d color wireframe cube.
 

-cone3d _radius,_height,_nb_subdivisions>0
 

Input 3d cone at (0,0,0), with specified geometry.
Default value : ´radius=1´,´height=1´ and ´nb_subdivisions=24´.
 

-cup3d _resolution>0
 

Generate a new 3d cup object.
 

-cylinder3d _radius,_height,_nb_subdivisions>0
 

Input 3d cylinder at (0,0,0), with specified geometry.
Default value : ´radius=1´,´height=1´ and ´nb_subdivisions=24´.
 

-distribution3d
 

Generate 3d color distribution of selected images.
 

-empty3d
 

Generate new empty 3d object.
 

-extrude3d _depth>0,_resolution>0,_smoothness[%]>=0
 

Generated extruded 3d object from selected binary profiles.
Default values : ´depth=16´, ´resolution=1024´ and ´smoothness=0.5%´.
 

-gaussians3d _size>0,_opacity
 

Convert selected 3d objects into set of 3d gaussian-shaped sprites.
 

-gmic3d
 

Generate a 3d G´MIC logo.
 

-gyroid3d _resolution>0,_zoom
 

Generate 3d gyroid at (0,0,0), with specified resolution.
Default values : ´resolution=32´ and ´zoom=5´.
 

-histogram3d
 

Generate 3d color histogram of selected images.
 

-image6cube3d
 

Generate 3d mapped cubes from selected sets of 6 selected images.
 

-imagecube3d
 

Generate 3d mapped cubes from selected images.
 

-imageplane3d
 

Generate 3d mapped planes from selected images.
 

-imagepyramid3d
 

Generate 3d mapped pyramides from selected images.
 

-imagerubik3d _xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100
 

Generate 3d mapped rubik´s cubes from selected images.
Default values : ´xy_tiles=3´, ´xy_shift=5´ and ´z_shift=5´.
 

-imagesphere3d _resolution1>=3,_resolution2>=3
 

Generate 3d mapped sphere from selected images.
Default values : ´resolution1=32´ and ´resolutions2=16´.
 

-label_points3d _label_size>0,_opacity
 

Add a numbered label to all vertices of selected 3d objects.
Default values : ´label_size=13´ and ´opacity=0.8´.
 

-lathe3d _resolution>0,_smoothness[%]>=0,_max_angle>=0
 

Generate 3d object from selected binary XY-profiles.
Default values : ´resolution=128´, ´smoothness=0.5%´ and ´max_angle=361´.
 

-line3d x0,y0,z0,x1,y1,z1
 

Input 3d line at specified coordinates.
 

-lissajous3d resolution>1,a,A,b,B,c,C
 

Generate 3d lissajous curves (x(t)=sin(a*t+A*2*pi),y(t)=sin(b*t+B*2*pi),z(t)=sin(c*t+C*2*pi)).
Default values : ´resolution=1024´, ´a=2´, ´A=0´, ´b=1´, ´B=0´, ´c=0´ and ´C=0´.
 

-n3d eq. to ´-normalize3d´.
-normalize3d
 

Normalize selected 3d objects to unit size.
(eq. to ´-n3d´).
 

-parametric3d _x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_isovalue>=0
 

Generate new 3d object from specified parametric surface (x(a,b),y(a,b),z(a,b)).
Default values : ´x=(2+cos(b))*sin(a)´, ´y=(2+cos(b))*cos(a)´, ´c=sin(b)´, ´amin=-pi´, ´amax=´pi´, ´bmin=-pi´, ´bmax=´pi´,
´res_a=512´, ´res_b=res_a´, ´res_x=64´, ´res_y=res_x´, ´res_z=res_y´, ´smoothness=2%´ and ´isovalue=10%´.
 

-pca_patch3d _patch_size>0,_M>0,_N>0,_normalize_input={ 0 | 1 },_normalize_output={ 0 | 1 },_lambda_xy
 

Generate 3d patch-pca representation of selected images.
The 3d patch-pca is estimated from M patches on the input image, and displayed as a cloud of N 3d points.
Default values : ´patch_size=7´, ´M=1000´, ´N=3000´, ´normalize_input=1´, ´normalize_output=0´, and ´lambda_xy=0´.
 

-plane3d _size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0
 

Input 3d plane at (0,0,0), with specified geometry.
Default values : ´size_x=1´, ´size_y=size_x´ and ´nb_subdivisions_x=nb_subdivisions_y=24´.
 

-point3d x0,y0,z0
 

Input 3d point at specified coordinates.
 

-pointcloud3d
 

Generate 3d point cloud from selected planar or volumetric images.
 

-projections3d _x[%],_y[%],_z[%],_is_bounding_box={ 0 | 1 }
 

Generate 3d xy,xz,yz projection planes from specified volumetric images.
 

-pyramid3d width,height
 

Generate 3d pyramid at (0,0,0), with specified geometry.
 

-quadrangle3d x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3
 

Input 3d quadrangle at specified coordinates.
 

-rotation3d u,v,w,angle
 

Input 3x3 rotation matrix with specified axis and angle (in deg).
 

-sierpinski3d _recursion_level>=0,_width,_height
 

Generate new 3d Sierpinski pyramid.
 

-snapshot3d _size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB
 

Create 2d snapshots of selected 3d objects.
Set ´zoom´ to 0 to disable object auto-scaling.
Default values : ´size=512´, ´zoom=1´ and ´backgroundR=backgroundG=backgroundB=(undefined)´.
 

-spherical3d _nb_azimuth>=3,_nb_zenith>=3,_radius_function(phi,theta)
 

Input 3d spherical object at (0,0,0), with specified geometry.
Default values : ´nb_zenith=nb_azimut=64´ and ´radius_function=
 

-sprite3d
 

Convert selected images as 3d sprites.
 

-superformula3d resolution>1,m>=1,n1,n2,n3
 

Generate 2d superformula curve as a 3d object.
Default values : ´resolution=1024´, ´m=8´, ´n1=1´, ´n2=5´ and ´n3=8´.
 

-text3d text,_font_height>0,_depth>0,_smoothness
 

Generate a 3d text object from specified text.
Default values : ´font_height=57´, ´depth=10´ and ´smoothness=1.5´.
 

-torus3d _radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2
 

Input 3d torus at (0,0,0), with specified geometry.
Default values : ´radius1=1´, ´radius2=0.3´, ´nb_subdivisions1=24´ and ´nb_subdivisions2=12´.
 

-triangle3d x0,y0,z0,x1,y1,z1,x2,y2,z2
 

Input 3d triangle at specified coordinates.
 

-weird3d _resolution>0
 

Generate 3d weird object at (0,0,0), with specified resolution.
Default value : ´resolution=32´.
 

** Arrays and frames :
 

-array M>0,_N>0,_expand_type={0,1,2}
 

Create MxN array from selected images.
Default values : ´N=M´ and ´expand_type=0´.
 

-array_fade M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0,1,2}
 

Create MxN array from selected images.
Default values : ´N=M´, ´fade_start=60´, ´fade_end=90´ and ´expand_type=1´.
 

-array_mirror N>=0,_dir={ 0=x | 1=y | 2=xy | 3=tri-xy },_expand_type={ 0 | 1 }
 

Create 2^Nx2^N array from selected images.
Default values : ´dir=2´ and ´expand_type=0´.
 

-array_pattern M>0,_N>0,_density>=0,_angle>=0,_zoom>=0,_opacity,_expand_type={0,1,2}
 

Create random MxN array from selected images.
Default values : ´N=M´, ´density=80´, ´angle=180´, ´zoom=30´, ´opacity=1´ and ´expand_type=0´.
 

-array_random Ms>0,_Ns>0,_Md>0,_Nd>0
 

Create MdxNd array of tiles from selected MsxNs source arrays.
Default values : ´Ns=Ms´, ´Md=Ms´ and ´Nd=Ns´.
 

-frame size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN
 

Insert RGBA-colored frame in selected images.
Default values : ´size_y=size_x´ and ´col1=255´.
 

-frame_blur _sharpness>0,_size>=0,_smoothness,_shading,_blur
 

Draw RGBA-colored round frame in selected images.
Default values : ´sharpness=10´, ´size=30´, ´smoothness=0´, ´shade=1´ and ´blur=3%´.
 

-frame_cube _depth>=0,_x_center,_y_center,_left_side={0=normal | 1=mirror-x | 2=mirror-y | 3=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´, ´defects_size=1´, ´defects_smoothness=0.5%´ and ´serial_number=123456789´.
 

-frame_pattern M>=3,_pattern = { 0=first image | 1=self },_constrain_size = { 0 | 1 }
 

Insert selected pattern frame in selected images.
Default values : ´pattern=0´ and ´constrain_size=0´.
 

-frame_round _sharpness>0,_size>=0,_smoothness,_shading,_R,_G,_B,_A
 

Draw RGBA-colored round frame in selected images.
Default values : ´sharpness=10´, ´size=10´, ´smoothness=0´, ´shade=0´ and ´R=G=B=A=255´.
 

-imagegrid _M>0,_N>0
 

Create MxN image grid from selected images.
Default value : ´N=M´.
 

-linearize_tiles M>0,_N>0
 

Linearize MxN tiles on selected images.
Default value : ´N=M´.
 

-quadratize_tiles M>0,_N>0
 

Quadratize MxN tiles on selected images.
Default value : ´N=M´.
 

-rotate_tiles angle,_M>0,N>0
 

Apply MxN tiled-rotation effect on selected images.
Default values : ´M=8´ and ´N=M´.
 

-shift_tiles M>0,_N>0,_amplitude
 

Apply MxN tiled-shift effect on selected images.
Default values : ´N=M´ and ´amplitude=20´.
 

-taquin M>0,_N>0
 

Create MxN taquin puzzle from selected images.
Default value : ´N=M´.
 

-tunnel _level>=0,_factor>0,_cx,_cy,_opacity.
 

Apply tunnel effect on selected images.
Default values : ´level=9´, ´factor=80%´, ´cx=cy=0.5´ and ´opacity=1´.
 

** Artistic :
 

-cartoon _smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0
 

Apply cartoon effect on selected images.
Default values : ´smoothness=3´, ´sharpening=80´, ´threshold=20´, ´thickness=0.25´, ´color=1.5´ and ´quantization=8´.
 

-circlism _radius_min>0,_radius_max>0,_smoothness[%]>=0,_radius_linearity>=0,_location_linearity>=0,_shape={0=squares | 1=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´, ´location_linearity=3´ and ´shape=1´.
 

-color_ellipses _count>0,_radius>=0,_opacity>=0
 

Add random color ellipses to selected images.
Default values : ´count=400´, ´radius=5´ and ´opacity=0.1´.
 

-cubism _nb_iter>=0,_bloc_size>0,_max_angle,_opacity,_smoothness>=0
 

Apply cubism effect on selected images.
Default values : ´nb_iter=160´, ´bloc_size=10´, ´max_angle=75´, ´opacity=0.7´ and ´smoothness=0´.
 

-dotsbw _nb_scales>=0,_resolution>0,_radius>=0
 

Apply B&W dots effect on selected images.
Default values : ´nb_scales=4´, ´resolution=10´ and ´radius=3´.
 

-draw_whirl _amplitude>=0
 

Apply whirl drawing effect on selected images.
Default value : ´amplitude=100´.
 

-drawing _amplitude>=0
 

Apply drawing effect on selected images.
Default value : ´amplitude=200´.
 

-drop_shadow _offset_x[%],_offset_y[%],_smoothness[%]
 

Drop shadow behind selected images.
Default values : ´offset_x=20´, ´offset_y=offset_x´ and ´smoothness=5´.
 

-ellipsionism _R>0[%],_r>0[%],_smoothness>=0[%],_opacity,_outline>0,_density>0
 

Apply ellipsionism filter to selected images.
Default values : ´R=10´, ´r=3´, ´smoothness=1%´, ´opacity=0.7´, ´outlise=8´ and ´density=0.6´.
 

-fire_edges _edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0
 

Generate fire effect from edges of selected images.
Default values : ´edges=0.7´, ´attenuation=0.25´, ´smoothness=0.5´, ´threshold=25´, ´nb_frames=1´, ´starting_frame=20´ and ´frame_skip=0´.
 

-glow _amplitude>=0
 

Add soft glow on selected images.
Default value : ´amplitude=1%´.
 

-hardsketchbw _amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={ 0 | 1 }
 

Apply hard B&W sketch effect on selected images.
Default values : ´amplitude=1000´, ´sampling=3´, ´opacity=0.1´, ´edge_threshold=20´ and ´is_fast=0´.
 

-hearts _density>=0
 

Apply heart effect on selected images.
Default value : ´density=10´.
 

-houghsketchbw _density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0
 

Apply hough B&W sketch effect on selected images.
Default values : ´density=8´, ´radius=5´, ´threshold=80´, ´opacity=0.1´ and ´votesize=100%´.
 

-lightrays 100<=_density<=0,_cx,_cy,_ray_length>=0,_ray_attenuation>=0
 

Generate ray lights from the edges of selected images.
Defaults values : ´density=50%´, ´cx=0.5´, ´cy=0.5´, ´ray_length=0.9´ and ´ray_attenuation=0.5´.
 

-light_relief _ambient_light,_specular_light,_specular_size,_darkness,_xl,_yl,_zl,_zscale,_opacity_bumpmap={ 0 | 1 }
 

Apply relief light to selected images.
Default values(s) : ´ambient_light=0.3´, ´specular_light=0.5´, ´specular_size=0.2´, ´darkness=0´, ´xl=0.2´, ´yl=zl=0.5´,
´zscale=1´, ´opacity=1´ and ´opacity_bumpmap=0´.
 

-mosaic _density>=0,_edges={ 0 | 1 }
 

Create random mosaic from selected images.
Default values : ´density=0.8´ and ´edges=1´.
 

-old_photo
 

Apply old photo effect on selected images.
 

-pencilbw _size>=0,_amplitude>=0
 

Apply B&W pencil effect on selected images.
Default values : ´size=0.3´ and ´amplitude=60´.
 

-polaroid _size1>=0,_size2>=0
 

Create polaroid effect in selected images.
Defaut values : ´size1=10´ and ´size2=20´.
 

-puzzle _scale>=0
 

Apply puzzle effect on selected images.
Default value : ´scale=5´.
 

-rodilius 0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={ 0=darker | 1=brighter }
 

Apply rodilius (fractalius-like) filter on selected images.
Default values : ´amplitude=10´, ´thickness=10´, ´sharpness=400´, ´nb_orientations=7´, ´offset=0´ and ´color_mode=1´.
 

-stained_glass _edges[%]>=0, shading>=0, is_thin_separators={ 0 | 1 }
 

Generate stained glass from selected images.
Default values : ´edges=40%´, ´shading=0.2´ and ´is_precise=0´.
 

-sketchbw
 

_nb_orients>0,_start_angle,_angle_range>=0,_length>=0,_threshold>=0,
_opacity,_bgfactor>=0,_density>0,_sharpness>=0,
_anisotropy>=0,_smoothness>=0,_coherence>=0,_is_boost={ 0 | 1 },_is_curved={ 0 | 1 }
 

Apply sketch effect to selected images.
Default values : ´nb_orients=2´, ´start_angle=45´, ´angle_range=180´, ´length=30´, ´threshold=1´, ´opacity=0.03´,
´bgfactor=0´, ´density=0.6´, ´sharpness=0.1´, ´anisotropy=0.6´, ´smoothness=0.25´, ´coherence=1´, ´is_boost=0´ and ´is_curved=1´.
 

-sponge _size>0
 

Apply sponge effect on selected images.
Default value : ´size=13´.
 

-stencil _radius[%]>=0,_smoothness>=0,_iterations>=0
 

Apply stencil filter on selected images.
Default values : ´radius=3´, ´smoothness=1´ and ´iterations=8´.
 

-stencilbw _edges>=0,_smoothness>=0
 

Apply B&W stencil effect on selected images.
Default values : ´edges=15´ and ´smoothness=10´.
 

-tetris _scale>0
 

Apply tetris effect on selected images.
Default value : ´scale=10´.
 

-warhol _M>0,_N>0,_smoothness>=0,_color>=0
 

Create MxN Andy Warhol-like artwork from selected images.
Default values : ´M=3´, ´N=M´, ´smoothness=2´ and ´color=20´.
 

-whirls _texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0
 

Add random whirl texture to selected images.
Default values : ´texture=3´, ´smoothness=6´, ´darkness=0.5´ and ´lightness=1.8´.
 

** Warpings :
 

-euclidean2polar _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Apply euclidean to polar transform on selected images.
Default values : ´cx=cy=0.5´, ´n=1´ and ´boundary=1´.
 

-deform _amplitude>=0
 

Apply random smooth deformation on selected images.
Default value : ´amplitude=10´.
 

-fisheye _x,_y,0<=_radius<=100,_amplitude>=0
 

Apply fish-eye deformation on selected images.
Default values : ´x=y=50´, ´radius=50´ and ´amplitude=1.2´.
 

-flower _amplitude,_frequency,_offset_r[%],_angle,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Apply flower deformation on selected images.
Default values : ´amplitude=30´, ´frequency=6´, ´offset_r=0´, ´angle=0´, ´cx=cy=0.5´ and ´boundary=2´.
 

-kaleidoscope _cx,_cy,_radius,_angle,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Create kaleidoscope effect from selected images.
Default values : ´cx=cy=0.5´, ´radius=100´, ´angle=30´ and ´boundary=1´.
 

-map_sphere _width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0
 

Map selected images on a sphere.
Default values : ´width=height=512´, ´radius=100´, ´dilation=0.5´, ´fading=0´ and ´fading_power=0.5´.
 

-polar2euclidean _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Apply polar to euclidean transform on selected images.
Default values : ´cx=cy=0.5´, ´n=1´ and ´boundary=1´.
 

-ripple _amplitude,_frequency,_shape={ 0=bloc | 1=triangle | 2=sine | 3=sine+ | 4=random },_angle,_offset
 

Apply ripple deformation on selected images.
Default values : ´amplitude=10´, ´frequency=10´, ´shape=2´, ´angle=0´ and ´offset=0´.
 

-rotoidoscope _cx,_cy,_tiles>0,_smoothness[%]>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic}
 

Create rotational kaleidoscope effect from selected images.
Default values : ´cx=cy=50%´, ´tiles=10´, ´smoothness=1´ and ´boundary=1´.
 

-transform_polar
 

Apply user-defined transform on polar representation of selected images.
Default values : ´expr_radius=R-r´, ´expr_rangle=a´, ´x_center=y_center=50´ and ´boundary=1´.
 

-twirl _amplitude,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Apply twirl deformation on selected images.
Default values : ´amplitude=1´, ´cx=cy=0.5´ and ´boundary=1´.
 

-warp_perspective _x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Warp selected images with perspective deformation.
Default values : ´x-angle=1.5´, ´y-angle=0´, ´zoom=1´, ´x-center=y-center=50´ and ´boundary=2´.
 

-water _amplitude>=0,_smoothness>=0
 

Apply water deformation on selected images.
Default values : ´amplitude=30´ and ´smoothness=1.5´.
 

-wave _amplitude>=0,_frequency>=0,_center_x,_center_y
 

Apply wave deformation on selected images.
Default values : ´amplitude=4´, ´frequency=0.4´ and ´center_x=center_y=50´.
 

-wind _amplitude>=0,_angle,0<=_attenuation<=1,_threshold
 

Apply wind effect on selected images.
Default values : ´amplitude=20´, ´angle=0´, ´attenuation=0.7´ and ´threshold=20´.
 

-zoom _factor,_cx,_cy,_cz,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic }
 

Apply zoom factor to selected images.
Default values : ´factor=1´, ´cx=cy=cz=0.5´ and ´boundary=0´.
 

** Degradations :
 

-cracks _density>=0,_amplitude,_relief={ 0 | 1 }
 

Add random cracks to selected images.
Default values : ´density=0.2´, ´amplitude=40´ and ´relief=0´.
 

-light_patch _density>0,_darkness>=0,_lightness>=0
 

Add light patches to selected images.
Default values : ´density=10´, ´darkness=0.9´ and ´lightness=1.7´.
 

-noise_hurl _amplitude>=0
 

Add hurl noise to selected images.
Default value : ´amplitude=10´.
 

-pixelize _scale_x>0,_scale_y>0,_scale_z>0
 

Pixelize selected images with specified scales.
Default values : ´scale_x=20´ and ´scale_y=scale_z=scale_x´.
 

-shade_stripes _frequency>=0,_direction={ 0=horizontal | 1=vertical },_darkness>=0,_lightness>=0
 

Add shade stripes to selected images.
Default values : ´frequency=5´, ´direction=1´, ´darkness=0.8´ and ´lightness=2´.
 

-shadow_patch _opacity>=0
 

Add shadow patches to selected images.
Default value : ´opacity=0.7´.
 

-spread _dx>=0,_dy>=0,_dz>=0
 

Spread pixel values of selected images randomly along x,y and z.
Default values : ´dx=3´, ´dy=dx´ and ´dz=0´.
 

-stripes_y _frequency>=0
 

Add vertical stripes to selected images.
Default value : ´frequency=10´.
 

-texturize_canvas _amplitude>=0,_fibrousness>=0,_emboss_level>=0
 

Add paint canvas texture to selected images.
Default values : ´amplitude=20´, ´fibrousness=3´ and ´emboss_level=0.6´.
 

-texturize_paper
 

Add paper texture to selected images.
 

-watermark_visible _text,0<_opacity<1,_size>0,_angle,_mode={ 0=remove | 1=add },_smoothness>=0
 

Add or remove a visible watermark on selected images (value range must be [0,255]).
Default values : ´text=(C) G´MIC´, ´opacity=0.3´, ´size=57´, ´angle=25´, ´mode=1´ and ´smoothness=0´.
 

** Blending and fading :
 

-compose_alpha
 

Compose selected images two-by-two, using alpha blending.
 

-compose_average
 

Compose selected images two-by-two, using average mode.
 

-compose_channels
 

Compose all channels of each selected image, using specified arithmetic operator (+,-,or,min,...).
Default value : ´1=+´.
 

-compose_colorburn
 

Compose selected images two-by-two, using color burn mode.
 

-compose_darken
 

Compose selected images two-by-two, using darken mode.
 

-compose_difference
 

Compose selected images two-by-two, using difference mode.
 

-compose_divide
 

Compose selected images two-by-two, using divide mode.
 

-compose_dodge
 

Compose selected images two-by-two, using dodge mode.
 

-compose_edges smoothness[%]>=0
 

Compose selected images togethers using edge mode.
 

-compose_exclusion
 

Compose selected images two-by-two, using exclusion mode.
 

-compose_fade
 

Compose selected images togethers using a given fading (defined as the latest image).
 

-compose_freeze
 

Compose selected images two-by-two, using freeze mode.
 

-compose_grainextract
 

Compose selected images two-by-two, using grain extract mode.
 

-compose_grainmerge
 

Compose selected images two-by-two, using grain merge mode.
 

-compose_hardlight
 

Compose selected images two-by-two, using hard light mode.
 

-compose_hue
 

Compose selected images two-by-two, using hue mode.
 

-compose_interpolation
 

Compose selected images two-by-two, using interpolation mode.
 

-compose_lighten
 

Compose selected images two-by-two, using lighten mode.
 

-compose_lightness
 

Compose selected images two-by-two, using lightness mode.
 

-compose_luminance
 

Compose selected images two-by-two, using luminance mode.
 

-compose_median
 

Compose selected images together using median mode.
 

-compose_multiply
 

Compose selected images two-by-two, using multiply mode.
 

-compose_negation
 

Compose selected images two-by-two, using negation mode.
 

-compose_overlay
 

Compose selected images two-by-two, using overlay mode.
 

-compose_reflect
 

Compose selected images two-by-two, using reflect mode.
 

-compose_rgba
 

Compose selected images two-by-two, as RGBA images over RGB backgrounds.
 

-compose_saturation
 

Compose selected images two-by-two, using saturation mode.
 

-compose_screen
 

Compose selected images two-by-two, using screen mode.
 

-compose_shapeaverage
 

Compose selected images two-by-two, using shape average mode.
 

-compose_softlight
 

Compose selected images two-by-two, using soft light mode.
 

-compose_stamp
 

Compose selected images two-by-two, using stamp mode.
 

-compose_value
 

Compose selected images two-by-two, using value mode.
 

-compose_xor
 

Compose selected images two-by-two, using xor mode.
 

-fade_diamond 0<=_start<=100,0<=_end<=100
 

Create diamond fading from selected images.
Default values : ´start=80´ and ´end=90´.
 

-fade_linear _angle,0<=_start<=100,0<=_end<=100
 

Create linear fading from selected images.
Default values : ´angle=45´, ´start=30´ and ´end=70´.
 

-fade_radial 0<=_start<=100,0<=_end<=100
 

Create radial fading from selected images.
Default values : ´start=30´ and ´end=70´.
 

-fade_x 0<=_start<=100,0<=_end<=100
 

Create horizontal fading from selected images.
Default values : ´start=30´ and ´end=70´.
 

-fade_y 0<=_start<=100,0<=_end<=100
 

Create vertical fading from selected images.
Default values : ´start=30´ and ´end=70´.
 

-fade_z 0<=_start<=100,0<=_end<=100
 

Create transversal fading from selected images.
Default values : ´start=30´ and ´end=70´.
 

** Image sequences :
 

-animate
 

filter_name,
delay>0
 

Animate filter from starting parameters to ending parameters.
Default value : ´delay=30´.
 

-morph nb_frames>0,_smoothness>=0,_precision>0
 

Create morphing sequence between selected images.
Default values : ´smoothness=0.1´ and ´precision=5´.
 

-register_nonrigid _smoothness>=0,_precision>0,_nb_scale>=0
 

Register selected images with non-rigid warp.
Default values : ´smoothness=0.2´, ´precision=6´ and ´nb_scale=0(auto)´.
 

-register_rigid _smoothness>=0
 

Register selected images with rigid warp.
Default value : ´smoothness=1´.
 

** Interactive demos :
 

-x_blobs
 

Launch the blobs editor.
 

-x_fire
 

Launch the fire demo.
 

-x_fireworks
 

Launch the fireworks demo.
 

-x_fisheye
 

Launch fish-eye demo.
 

-x_fourier
 

Launch fourier filtering demo.
 

-x_histogram
 

Launch histogram demo.
 

-x_hough
 

Launch hough transform demo.
 

-x_jawbreaker 0<_width<20,0<_height<20,0<_balls<=8
 

Launch the Jawbreaker game.
 

-x_life
 

Launch the game of life.
 

-x_light
 

Launch the light demo.
 

-x_mandelbrot _julia={ 0 | 1 },_c0r,_c0i
 

Launch Mandelbrot/Julia explorer.
 

-x_minesweeper 8<=_width=<20,8<=_height<=20
 

Launch the Minesweeper game.
 

-x_minimal_path
 

Launch the minimal path demo.
 

-x_paint
 

Launch the interactive painter.
 

-x_plasma
 

Launch the plasma demo.
 

-x_reflection3d
 

Launch the 3d reflection demo.
 

-x_rubber3d
 

Launch the 3d rubber demo.
 

-x_shadebobs
 

Launch the shade bobs demo.
 

-x_spline
 

Launch spline curve editor.
 

-x_tictactoe
 

Launch tic-tac-toe game.
 

-x_whirl _opacity>=0
 

Launch fractal whirl demo.
Default values : ´opacity=0.2´.
 

** PINK-library operators :
 

-output_pink3d filename
 

Save selected images as P5-coded PPM files (PINK extension for 3d volumetric images).
 

-pink
 

Pink wrapper name,p1, .. ,pn (requires the PINK library to be installed).
(http://pinkhq.com/)
prepares input, calls external
 

-pink_grayskel _connectivity={ 4 | 8 | 6 | 26 }, _lambda=0
 

(http://pinkhq.com/grayskel_8c.html)
Grayscale homotopic skeleton (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´lambda=0´.
 

-pink_heightmaxima _connectivity={ 4 | 8 | 6 | 26 },_height=1
 

(http://pinkhq.com/heightmaxima_8c.html)
Heightmaxima filtering (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´height=1´.
 

-pink_heightminima _connectivity={ 4 | 8 | 6 | 26 },_height=1
 

(http://pinkhq.com/heightminima_8c.html)
Heightminima filtering (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´height=1´.
 

-pink_htkern _connectivity={ 4 | 8 | 6 | 26 }, _type={
 

(http://pinkhq.com/htkern_8c.html)
(http://pinkhq.com/htkernu_8c.html)
Grayscale ultimate homotopic thinning/thickening without condition (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´type=
 

-pink_lvkern _connectivity={ 4 | 8 | 6 | 26 }, _type={
 

(http://pinkhq.com/lvkern_8c.html)
(http://pinkhq.com/lvkernu_8c.html)
Grayscale ultimate leveling thinning/thickening without condition (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´type=
 

-pink_reg_minima _connectivity={ 4 | 8 | 6 | 26 }
 

(http://pinkhq.com/minima_8c.html)
Regional minima (requires the PINK library to be installed).
Default values : ´connectivity=4´.
 

-pink_skelcurv _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={
 

(http://pinkhq.com/skelcurv_8c.html)
Curvilinear binary skeleton guided by a priority function or image (requires the PINK library to be installed).
Default values : ´prio=0´, ´connectivity=4´ and ´inhibit=
 

-pink_skelend _connectivity={ 4 | 8 | 6 | 26 },_n=0
 

(http://pinkhq.com/skelend_8c.html)
Homotopic skeleton of a 2d or 3d binary image with dynamic detection of end points (requires the PINK library to be installed).
Default values : ´connectivity=4´ and ´n=0´.
 

-pink_skeleton _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={
 

(http://pinkhq.com/skeleton_8c.html)
Ultimate binary skeleton guided by a priority image (requires the PINK library to be installed).
Default values : ´prio=0´, ´connectivity=4´ and ´inhibit=
 

-pink_skelpar _algorithm={0..29},_nsteps=_1,_inhibit=
 

(http://pinkhq.com/skelpar_8c.html)
Parallel binary skeleton (requires the PINK library to be installed).
Default values : ´algorithm=4´, ´nsteps=-1´ and ´inhibit=
 

-pink_wshed _connectivity={ 4 | 8 | 6 | 26 },_inverse={ 0 | 1 },_height=0
 

(http://pinkhq.com/wshedtopo_8c.html)
Watershed (requires the PINK library to be installed).
Default values : ´connectivity=4´, ´inverse=0´ and ´height=0´.
 

** Convenience functions :
 

-arg n,_arg1,...,_argN
 

Return the n-th argument of the specified argument list.
´n´ can be also a pattern, as ´1--1´ for instance.
 

-at _x,_y,_z
 

Return a specified vector-valued point (x,y,z) from the latest of the selected images.
 

-basename file_path,_variable_name_for_folder
 

Return the basename of a file path, and opt. its folder location.
When specified ´variable_name_for_folder´ must starts by an underscore
(global variable accessible from calling function).
 

-bin binary_int1,...
 

Print specified binary integers into their octal, decimal, hexadecimal and string representations.
 

-bin2dec binary_int1,...
 

Convert specified binary integers into their decimal representations.
 

-dec decimal_int1,...
 

Print specified decimal integers into their binary, octal, hexadecimal and string representations.
 

-dec2str decimal_int1,...
 

Convert specifial decimal integers into its string representation.
 

-dec2bin decimal_int1,...
 

Convert specified decimal integers into their binary representations.
 

-dec2hex decimal_int1,...
 

Convert specified decimal integers into their hexadecimal representations.
 

-dec2oct decimal_int1,...
 

Convert specified decimal integers into their octal representations.
 

-fact value
 

Return the factorial of the specified value.
 

-file_mv filename_src,filename_dest
 

Rename or move a file from a location $1 to another location $2.
 

-file_rand
 

Return a random filename for storing temporary data.
 

-file_rm filename
 

Delete a file.
 

-file_slash
 

Return ´/´ or ´´ as a path separator for filenames.
 

-filename filename,_number1,_number2,...,_numberN
 

Return a filename numbered with specified indices.
 

-fitratio_wh min_width,min_height,ratio_wh
 

Return a 2d size ´width,height´ which is bigger than ´min_width,min_height´ and has the specified w/h ratio.
 

-fitscreen width,height,_depth
 

Return the ´ideal´ size WxH for a window intended to display an image of specified size on screen.
 

-gcd a,b
 

Return the GCD (greatest common divisor) between a and b.
 

-hex hexadecimal_int1,...
 

Print specified hexadecimal integers into their binary, octal, decimal and string representations.
 

-hex2dec hexadecimal_int1,...
 

Convert specified hexadecimal integers into their decimal representations.
 

-hex2str hexadecimal_string
 

Convert specified hexadecimal string into a string.
 

-img82hex
 

Convert selected 8bits-valued vectors into their hexadecimal representations (ascii-encoded).
 

-hex2img8
 

Convert selected hexadecimal representations (ascii-encoded) into 8bits-valued vectors.
 

-is_3d
 

Return 1 if all of the selected image are 3d objects, 0 otherwise.
 

-is_percent string
 

Return 1 if specified string ends with a ´%´, 0 otherwise.
 

-is_windows
 

Return 1 if current computer OS is Windows, 0 otherwise.
 

-max_s
 

Return the maximal s size of selected images.
 

-max_wh
 

Return the maximal wxh size of selected images.
 

-max_whd
 

Return the maximal wxhxd size of selected images.
 

-max_whds
 

Return the maximal wxhxdxs size of selected images.
 

-min_s
 

Return the minimal s size of selected images.
 

-min_wh
 

Return the minimal wxh size of selected images.
 

-min_whd
 

Return the minimal wxhxd size of selected images.
 

-min_whds
 

Return the minimal wxhxdxs size of selected images.
 

-oct octal_int1,...
 

Print specified octal integers into their binary, decimal, hexadecimal and string representations.
 

-oct2dec octal_int1,...
 

Convert specified octal integers into their decimal representations.
 

-padint number,_size>0
 

Return a integer with ´size´ digits (eventually left-padded with ´0´).
 

-path_tmp
 

Return a path to store temporary files (whose value is OS-dependent).
 

-path_user
 

Return a path to store persistent configuration files for one user (whose value is OS-dependent).
 

-quote string
 

Return a
 

-reset
 

Reset global parameters of the interpreter environment.
 

-RGB
 

Return a random int-valued RGB color.
 

-RGBA
 

Return a random int-valued RGBA color.
 

-str string
 

Print specified string into its binary, octal, decimal and hexadecimal representations.
 

-str2hex string
 

Convert specified string into a sequence of hexadecimal values.
 

-stresc val1,...,valN
 

Return escaped string from specified ascii codes.
 

-strcat string1,string2,...
 

Return the concatenation of all strings passed as arguments.
 

-strcmp string1,string2
 

Return 1 if the two strings are equal, 0 otherwise.
 

-strlen string1
 

Return the length of specified string argument.
 

-strreplace string,search,replace
 

Search and replace substrings in an input string.
 

-struncase string
 

Return a lower-case version of the specified string.
 

-strver
 

Return the current version number of the G´MIC interpreter, as a string.
 

-tic
 

Initialize tic-toc timer.
Use it in conjunction with ´-toc´.
 

-toc
 

Display elapsed time of the tic-toc timer since the last call to ´-tic´.
Use it in conjunction with ´-tic´.
 

** Others :
 

-gpt _scorefile,_number_of_sessions>=0
 

Generate score board for the GPT championship (GREYC Poker Tour).
 

** Total number of commands 761
 

Examples of use
---------------
 

´gmic´ is a generic image processing tool which can be used in a wide variety of situations.
The few examples below illustrate possible uses of this tool :
 

- View a list of images :
gmic file1.bmp file2.jpeg
 

- Convert an image file :
gmic input.bmp -o output.jpg
 

- Create a volumetric image from a movie sequence :
gmic input.mpg -a z -o output.hdr
 

- Compute image gradient norm :
gmic input.bmp -gradient_norm
 

- Denoise a color image :
gmic image.jpg -denoise 30,10 -o denoised.jpg
 

- Compose two images using overlay fading :
gmic image1.jpg image2.jpg -compose_overlay -o composed.jpg
 

- Evaluate a mathematical expression :
gmic -e
 

- Plot a 2d function :
gmic 1000,1,1,2 -f
 

- Plot a 3d elevated function in random colors:
gmic 128,128,1,3,
-elevation3d[-1]
 

- Plot the isosurface of a 3d volume :
gmic -m3d 5 -md3d 5 -db3d 0 -isosurface3d
 

- Render a G´MIC 3d logo :
gmic 1 -text G\'MIC,0,0,57,1,1,1,1 -expand_xy 10,0 -blur 2 -n 0,100 --plasma 0.4 -+ -blur 1 -elevation3d -0.1 -md3d 4
 

- Generate a 3d ring of torii :
gmic -repeat 20 -torus3d 15,2 -col3d[-1]
-*3d[-1] 0.5,1 -if
-r3d 0,0,1,18 -done -md3d 3 -m3d 5 -db3d 0
 

- Create a vase from a 3d isosurface :
gmic -md3d 4 -isosurface3d
--3d[-1] 0,5 -plane3d 15,15 -r3d[-1] 1,0,0,90 -c3d[-1] -+3d[-1] 0,3.2 -col3d[-1] 180,150,255 -col3d[-2] 128,255,0 -col3d[-3] 255,128,0 -+3d
 

- Display filtered webcam stream :
gmic -apply_camera \"--mirror x --mirror y -+ -/ 4\"
 

- Launch a set of G´MIC interactive demos :
gmic -x_fisheye -x_fire G\'MIC -x_tictactoe -rm -x_spline -x_mandelbrot 0 -x_light -x_whirl , -x_life -x_jawbreaker , -x_blobs
 

** G´MIC comes with ABSOLUTELY NO WARRANTY; for details visit http://gmic.sourceforge.net **
 
Thu Jun 21 18:36:03 CEST 2012