Hello there,

I’m really happy to announce the release of a new major version (numbered 2.0.0) of the G’MIC image processing framework. As always, I encourage upgrading to this new version as soon as possible .

This version got major changes and improvements and is not backward-compatible with the previous branch (1.7.x). From now on, addition of new filters and bug fixes will be done only for this new branch 2.x.x.

What is G’MIC?

G’MIC is a full-featured open-source framework for image processing. It provides several different user interfaces to convert/manipulate/filter/visualize generic image datasets, ranging from 1d scalar signals to 3d+t sequences of multi-spectral volumetric images, thus including 2d color images.

G’MIC main project page : http://gmic.eu

G’MIC plug-in for GIMP : http://gmic.eu/gimp.shtml

G’MIC web service : https://gmicol.greyc.fr/

G’MIC language tutorial pages : http://gmic.eu/tutorial/basics.shtml

The following is the full Changelog of the version 2.0.0, as compared to the previous stable version 1.7.9.

Enjoy !

New features:

[global] G’MIC has new Qt-based interface for the plug-in. This plug-in interface has now its own API, to ease its integration in other host software interested by the G’MIC capabilities. Already work as a GIMP plug-in, and as a stand-alone application, but more hosts should be considered in the future (with a priority for Krita).

This is a tremendous contribution from my colleague, researcher Sébastien Fourey working at the GREYC laboratory in Caen.

[gimp] New filter Deformations / Conformal maps allows to deform images with conformal maps, i.e. warpings that preserve angles locally.

[gimp] New filter Black & White / Colorize lineart [smart coloring] proposes a new algorithm to help colorizing lineart images. It uses smart techniques to analyze the geometry of the strokes to close holes in contours before the region filling process. David Revoy wrote an article about it : http://www.davidrevoy.com/article324/smart-coloring-preview-of-a-new-gmic-filter

[gimp] New filter Artistic / Illustration look, is a conversion of Sébastien Guyader’s .scm script into a G’MIC filter (as described in this thread: Highlight Bloom and Photoillustration Look).

[gimp] New filter Various / Sample image proposes several free-of-use reference images to play with.

[gimp] New filter Colors / Color mask [interactive] that proposes a smart interactive tool to create color/luminosity masks from images, based on a simple machine learning algorithm.

[gimp] New filter Light & Shadows / Pop shadows that implements the Easy Tone Mapping algoithm proposed by @Morgan_Hardwood.

[core/gimp] New command -blur_bloom and associated GIMP filter Degradations / Blur [bloom] that creates a glow effect on your images, using the method of Masaki Kawase:2004 (same as the Bloom plug-in in Natron).

[core] 3d renderer in G’MIC is now able to map bumped textures on 3d triangles/quadrangles, when illuminated wit Phong-shading.

[core] New native command -for allows to create loops as -for condition... -done (with the condition being evaulated before the first iteration of the loop, contrary to a -do...-while condition block).

[core] Unary operator% added to math parser, to compute percentage of expressions (e.g. x=10;(100-10)% ).

[core] Function bool() added to math parser, to cast a value into a boolean ( 0 or 1 ).

[core] Function resize(#ind,w,h,d,s,interp,boundaries) in math parser allows a math expression to resize an image of the image list. This is a flexible way for a complex expression to manage variable length buffer/vectors (such as value stacks for instance).

[core] Function end(expr) in math parser allows to insert termination code into a math expression, useful for instance when multi-threaded evaluation is performed on an image.

[core] Function _(args) in math parser added. It does nothing else than ignoring its arguments. Useful for debugging expressions.

[stdlib] Add new blending modes shapemin , shapemin0 , shapemax and shapemax0 that computes the min and max values of the base layer over continuous regions in the top layer.

[stdlib] Add new blending modes shapeareamax , shapeareamax0 , shapeareamin and shapeareamin0 that keep the most frequent color of the base layer over continuous regions in the top layer.

[stdlib] New commands -rgb2hcy and hcy2rgb converts color from/to RGB to/from HCY color spaces.

[stdlib] New command -apply_matrix3d applies a 3x3 matrix to a 3d vector object.

[stdlib] New command -extract_region extracts all pixels from selected images according to the labels of another image.

[stdlib] New commands -display_parallel and -display_parallel0 (eq. to -dp and -dp0 ) displays multiple images on different interactive windows ( -dp0 does it without value normalization).

[stdlib] New command -x_connect4 implements the famous Connect-Four game. Available also in the plug-in, in filter Various / Games & Demos.



[community] G’MIC has now its Twitter feed, at https://twitter.com/gmic_ip.

Improvements / Changes:

[other] Compilation of G’MIC on Windows 64bits now uses a recent version of g++ ( 6.2.0 ), which makes a huge difference in performance for some filters (e.g. x60 faster for image deformation with conformal maps).

), which makes a huge difference in performance for some filters (e.g. x60 faster for image deformation with conformal maps). [core] Added OpenMP parallelization in function used to display list of images, and compute image statistics.

[core] Added support for 64bits-valued .tiff files (including integer and float formats).

[core] Native commands -resize , -crop , -warp , -shift -rotate and -map now accept a boundary_condition argument that can be =3 (for mirrored boundaries). This includes pixel accessors in the math parser and most custom commands using boundary condition arguments as well.

, , , and now accept a argument that can be (for mirrored boundaries). This includes pixel accessors in the math parser and most custom commands using boundary condition arguments as well. [core] Command -shift has a new parameter interpolation = { 0 =nearest-neighbor | 1 = linear } .

has a new parameter . [core] Command -boxfilter now accepts an additional nb_iter argument which allows to run the filter multiple times without using an explicit loop (is really useful and runs significantly faster).

now accepts an additional argument which allows to run the filter multiple times without using an explicit loop (is really useful and runs significantly faster). [core] Math parser now accepts multiple init() calls in a single expression.

calls in a single expression. [core] Math parser now accepts multiple consecutive separator ; inside an expression body.

inside an expression body. [core] Bitwise operators and , or and xor in math parser now use signed values for computation.

, and in math parser now use signed values for computation. [core] Command -flood now supports high-connectivity when applied on 3d volumetric images, and requires less memory to run.

now supports high-connectivity when applied on 3d volumetric images, and requires less memory to run. [core] Command shorcuts for matrix multiplication and divisions are now -m* and -m/ instead of -** and -// .

and instead of and . [core] Matrix multiplication in math parser cannot be done with operator ** anymore (reserved for multiplying complex numbers).

anymore (reserved for multiplying complex numbers). [stdlib] Comment tags #@gmic , #@gimp and #@gmicol used in the .gmic command files have been replaced respectively by #@cli , #@gui and #@web .

, and used in the .gmic command files have been replaced respectively by , and . [stdlib] Command -map_clut now accepts the clut name directly as a parameter.

now accepts the clut name directly as a parameter. [stdlib] Command ‘-sample’ now accepts multiple image names as parameters.

[gimp] Preview warning due to changed zoom factor now appear as a small icon under the preview window, rather than a note in the filter parameters.

[gimp] The plug-in for GIMP gmic_gimp now registers itself in a way that several version numbers of the plug-in can coexist.

now registers itself in a way that several version numbers of the plug-in can coexist. [gimp] New CLUTs to emulate Fuji films have been added, kindly provided by Stuart Sowerby.

[gimp] Non-interactive call of the plug-in has now an additional ‘output-mode’ parameter.

[web] Our online web service G’MIC Online has a new beta version, that should work better on mobile devices. G’MICol beta is developed by Christophe Couronne, a member of the GREYC laboratory in Caen.



Bug fixes: