This is the changelog for the release of the 3.5.0 version of the G’MIC software, released on 2024/12/31.
It lists all new features and changes done since the previous version 3.4.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
What’s new in version 3.5.0?
New features:
- [gmic-qt-350] New filter Patterns / Stripes makes it easy to create complex stripe patterns in images.
-
[math-core-350] Add optional argument to functions
c2o()
ando2c()
to allow returning-1
is specified argument corresponds to a pixel that is out of image. -
[math-core-350] Implementation of the
softargmin()
andsoftargmax()
functions. -
[core-350] Native implementation of the
softmin()
function, both with commandsoftmin
and math functionsoftmin()
. -
[stdlib_350]
nn_lib
: Multiple neural networks can now be handled at the same time within the library. -
[gmic-qt-344] New filter Repair / Upscale [CNN2x] doubles image size using a small convolutional neural network (CNN).
-
[stdlib_344]
nn_lib
: Implementation of gradient clipping and L2 weight regularization for neural networt trraining. -
[core-342] Native implementation of the
softmax()
function, both with commandsoftmax
and math functionsoftmax()
. -
[gmic-qt-341] Add native preview splitter in the G’MIC-Qt interface.
-
[stdlib-341] New command
input_normalized
(shortcut:in
) loads an image and ensures its value range is inside [0,255]. Useful to load images that can be either 8bits/channel or 16bits/channels without worrying about normalizing the value range. -
[stdlib-343] New commands
isinf
andisnan
select respectivelyinf
andnan
values in selected images. -
[core-343] Add native I/O support for
.webp
files (enabled by default for Linux builds).
Modifications / Optimizations :
-
[packages-350] Use the full clang toolchain for compiling
gmic
and G’MIC-Qt on Windows, as it seems to generate more optimized binaries. -
[core-350] Command
output
: When saving .png files, it is now possible to force the bit depth used in the saved file. -
[core-350] Command
window
: When command is invoked with a single argument like200%
, makes it also the default value for the second argument. -
[core-350] Commands
convolve
andcorrelate
have been partially recoded. List of arguments have changed to reflect these changes. -
[gmic-qt-342] Add code to be compatible with upcoming GIMP 3.0 plug-in API (cool contribution from Host/Gimp: convert to new GimpProcedureConfig APIs by berrange · Pull Request #208 · c-koi/gmic-qt · GitHub).
-
[gmic-qt-342] New keyboard shortcut
CTRL+SHIFT+P
enables/disables preview splitter. -
[core-341] Command
mproj
has been recoded and optimized. -
[stdlib-341] Hide non-native preview splitter of G’MIC-Qt filters, when G’MIC version number is 3.4.1+ (use native G’MIC-Qt preview splitter instead).
-
[stdlib-343] Command
autocrop
converted from native to custom command of thestdlib
, with newaxes
option added. Commandautocrop_coords
has been recoded from scratch, with newaxes
option added as well. -
[stdlib-344]
nn_lib
: Implements Cosine Annealing LR scheduler as an option for the trainer. Also implements pixel shuffle layer for image up/down-scaling. -
[math-core-343] Function
sort()
: Add optional argument that specifies the index of the sorted values, when dealing with multi-valued blocks. -
[math-core-344] Function
isin()
: Detect and optimize case where every given argument is a constant (so returned boolean can be computed at compile time).
Bugfix :
-
[stdlib-344]
nn_lib
: A lot of bug fix and various improvements in various kind of network layers (normalization, strided convolution). -
[stdlib-343] Command
input_gpl
: Fix file parsing bug. -
[gmic-qt-342] Fix bug in native preview splitter (reported here: https://discuss.pixls.us/t/half-preview-left-or-right-bug-in-3-4-1
-
[core-341] Command
polygon
: Fix argument parsing bug that prevented filling a polygon with a negative-value color. -
[math-core-343] Fix/recode function
v()
that generates random integers to make it work correctly with larger ranges. -
[math-core-343] Fix functions
operator=()
,find()
andsame()
, when value or value sequence to search for or to compare containNaN
values.