This is the changelog for the release of the 3.1.0 version of the G’MIC software, released on 2022/04/26.
It lists all new features and changes done since the previous major version 3.0.
What is G’MIC?
G’MIC (GREYC’s Magic for Image Computing) 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 : https://gmic.eu
- G’MIC download : G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Download
- G’MIC web service : https://gmicol.greyc.fr/
- G’MIC language tutorial pages : Start Here
- Support G’MIC development : G'MIC — Association LILA
What’s new in version 3.1?
From 3.0.2 to 3.1.0
New features:
- [gmic-qt-310] New filter Rendering / Generate Random Portrait uses the ThisPersonDoesNotExist service to generate images of random portraits.
- [gmic-qt-310] New filter Artistic / Line Art transforms images into line arts (filter written by Claude Lion).
- [gmic-qt-310] New preview mode
(zoomfactor)*allow a filter to retrieve the whole image, in order to compute a perfectly accurate preview (useful when filter is fast enough). To be used in conjunction with predefined variables$_preview_width,$_preview_height,$_preview_area_width,$_preview_area_height,$_preview_x0,$_preview_y0,$_preview_x1and$_preview_y1. - [core-310] New command
foreach, loops over an image selection, image by image and execute each loop iteration in a local image environment. It introduces a useful constructforeach ... doneblock, to replace e.g.repeat $! l[$>] ... endl done. - [math-core-310] Definition of variadic macros are now allowed in the math expression evaluator, e.g:
func(arg...) = ( sum([ arg ]^2) );. - [stdlib-310] New commands
opening,opening_circ,closingandclosing_circwhich implement morphological opening and closing. - [stdlib-310] New commands
premulaandipremulaconvert straight RGBA representation to premultiplied alpha RGBA.
Improvements / modifications:
- [stdlib-310] Command
structuretensorshas been recoded as a custom command in the stdlib. - [core-310] Command
name: if selection is empty or not explicitly specified, it now represents the last ‘N’ images of the list, where ‘N’ is the number of specified arguments to the commandname, rather than the entire image list. - [core-310] Command
namegets a new command shortcut=>. Old shortcutnmstill works, for compatibility reasons. - [core-310] Substituting expressions
'$>and$<(forward and backward loop counters) now works for all kind of loops (for...done,do...while, etc.). - [core-310] Command
repeatdoes not accept an additional variable name argument anymore. Userepeat nb_iters i=$> ... doneinstead. - [core-310] Command
endlis now replaced by ‘done’. - [core-310] Commands
endifandendlocalare not supported anymore. Usefianddoneinstead. - [core-310] Command
storenow accepts large image (>2GB values). - [core-310] Code for variable assignment has been recoded from scratch.
- [core-310] Add checks to detect potentially malicious
.bmpor.panfiles. - [core-310] Names of pixel types have been normalized. Now, they can be
{ bool | uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 | float32 | float64 }. - [math-core-310] Interpreter reserved variables
$!,$>,$<,$|and$^are now available in the math evaluator. - [packages-310] Added binary packages for Debian 11 “Bullseye” distribution.
- [packages-310] Added binary packages for Ubuntu 22.04 “Jammy Jellyfish” distribution.
Bug fixes:
- [stdlib-310] Fix bug in command
input_cachedfor Window users. - [core-310] Fix command
blurapplied on shared images, whenboundary_conditions=2.
From 3.0.1 to 3.0.2
(released on 2022/01/18)
Modifications / improvements:
- [stdlib-302] Commands
average_colorsandcovariance_colorsrenamed to, respectivelyaverage_vectorsandcovariance_vectors. Commandcovariance_vectorshas been also greatly optimized (multi-threaded calculation).
Bug fixes:
- [core-302] Fix bug in variable assignment with the
:=operator.
From 3.0.0 to 3.0.1
(released on 2022/01/13)
New features:
-
[core-301] New variable assignment operator
:=, which evaluates the right-hand side as a mathematical expression. So,var:=expris actually equivalent tovar={expr}. -
[stdlib-301] New command
portraitinserts a new portrait image on the image list, retrieved from the web site ThisPersonDoesNotExist.
Modifications / improvements:
-
[core-301] Make variable assignment operators as
+=,-=, … evaluate their right-hand side as a math expression, without requiring it to be put between{}. -
[math-core-301] Slightly improve math parser by merging
listinandlistoutfields. -
[math-core-301] Functions
print()andprints()now print the specified arguments also during compilation time. Useful to check the type of a variable/expression during the compilation of the math expression into bytecodes. -
[stdlib-301]
nn_libgets new features : softmax layer, binary cross-entropy loss. -
[stdlib-301] Command
boxfittinggets a complete rewrite, implementing a new algorithm that is a lot faster. -
[build-301] Build G’MIC interfaces are now all using the
libgmic.soshared library.
Bug fixes:
- [math-core-301] Fix floating point exception when functions
da_*()are used with no images on the list. - [math-core-301] Fix
da_remove()andda_pop()when used with multi-channels dynamic arrays.



