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_x1
and$_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 ... done
block, 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
,closing
andclosing_circ
which implement morphological opening and closing. - [stdlib-310] New commands
premula
andipremula
convert straight RGBA representation to premultiplied alpha RGBA.
Improvements / modifications:
- [stdlib-310] Command
structuretensors
has 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
name
gets a new command shortcut=>
. Old shortcutnm
still 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
repeat
does not accept an additional variable name argument anymore. Userepeat nb_iters i=$> ... done
instead. - [core-310] Command
endl
is now replaced by ‘done’. - [core-310] Commands
endif
andendlocal
are not supported anymore. Usefi
anddone
instead. - [core-310] Command
store
now accepts large image (>2GB values). - [core-310] Code for variable assignment has been recoded from scratch.
- [core-310] Add checks to detect potentially malicious
.bmp
or.pan
files. - [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_cached
for Window users. - [core-310] Fix command
blur
applied 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_colors
andcovariance_colors
renamed to, respectivelyaverage_vectors
andcovariance_vectors
. Commandcovariance_vectors
has 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:=expr
is actually equivalent tovar={expr}
. -
[stdlib-301] New command
portrait
inserts 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
listin
andlistout
fields. -
[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_lib
gets new features : softmax layer, binary cross-entropy loss. -
[stdlib-301] Command
boxfitting
gets a complete rewrite, implementing a new algorithm that is a lot faster. -
[build-301] Build G’MIC interfaces are now all using the
libgmic.so
shared 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.