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 |