Release of G'MIC 1.7.0

Hello there,
I’m happy to announce the release of the new major version 1.7.0 of the G’MIC image processing framework.

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.

Thirsty note: If you appreciate the constant efforts I’m putting on G’MIC, you are welcome to reward me with a hot chocolate ! →

The following is the full Changelog of the version 1.7.0, as compared to previous stable version 1.6.9.
Most of the important work done for this release has been focused on the improvement and optimization of the embedded math expression evaluator, and its JIT compiler. It opens new ways to code interesting filters that do complex operations on a pixel scale instead of filters that are expressed as more pipelined macro operations.

New features:

  • [core] Added a C bridge to the libgmic library, thanks to the help of Tobias Fleischer. This bridge offers a simple API in C to call G’MIC library functions. A pre-compiled DLL is available on Windows to be used by other developers to easily integrate G’MIC in their own projects (without having to recompile G’MIC itself).

  • [core] New functions copy(), transp(), solve(), trace(), det(), diag(), rot(), trace(), eig(), eye(), cross(), dot(), size(), sum(), prod(), mean(), std(), solve(), var(), crop() and draw() have been made available in the G’MIC math expression evaluator, to better manage vectors and matrix-valued variables and arguments, as well as to retrieve/draw patches from image using vector-valued variables.

  • [ZArt] The Qt-interface for G’MIC has been improved. It now manages favorites, a bit like how it’s done in the GIMP plug-in. Other various improvements have been made on the overall interface.

  • [stdlib] New command -apply_scales has been added. It can be used to apply a G’MIC command for several different scales of an image at the same time. This command is used by the new GIMP plug-in entry Layers / Multiscale operator.

  • [stdlib] Improvement of command -split_details which allows now to decompose an image into multiple detail scales, using a wavelet a trous algorithm (this should be quite similar to the well known wavelet-decompose plug-in done for GIMP by Marco Rossini). Corresponding filter Details / Split details [wavelets] has been added in the G’MIC plug-in for GIMP.

  • _[stdlib] New command -denoise_patchpca (and its associated GIMP plug-in filter Repair / Smooth [patch-pca]), which implements a new efficient algorithm (based on patch-pca) for removing noise in image.

Various improvements:

  • [core] The watershed algorithm (command -watershed ) has been completely recoded, and is more robust. Particularly, it can be used now to compute more precise 2d/3d discrete voronoi diagrams. Thanks to S. Fourey for his contribution.

  • [core] The math expression evaluator has been greatly optimized. Computations involving small and matrices are now optimized with loop unrolling techniques in the JIT compiler. Using vectors is now as fast (if not even slightly faster!) as using the same number of scalar variables in a math expression.

Bug fixes:

  • Lot of small bug fixes and optimizations, as always :slight_smile:, including better output for TIFF and PANDORE image files, code cleaning, improvements of error messages, etc…

That’s extremely good news! :smiley:
Lack of a DLL has been a bit of a showstopper in some ways.

As a side note, the math parser’s ability to access any image in the stack has led me to some surprising methods. 2d point clouds can be done quickly without any need for 3d objects. So now it can be used to speed things up where a loop is required, not something I expected!

1 Like

You are right, 3d objects will be probably used in less ‘hacky’ configurations now :slightly_smiling:

This C bridge/API will then also allow cross-compiler approaches, meaning the pre-built DLL on Windows (using MinGW) is easily usable in Visual Studio C/C++ projects for example. So I/we hope to see some more cool projects making use of the G’MIC functionality in new applications!
Of course my soon to be released G’MIC OpenFX and After Effects visual effects plugins will also use this, so many users of Natron, Nuke, Resolve and Adobe products might suddenly discover the extensive world of G’MIC effects. :slightly_smiling:

1 Like

This topic is now a banner. It will appear at the top of every page until it is dismissed by the user.

This topic is no longer a banner. It will no longer appear at the top of every page.

  • 25/03/2016 : Final release !

About to install it now; thanks for the update, David. Hope to see someone use G’MIC as a PS compatible filter one day so I can share that info at other sites that I frequent. I will always be a GIMPer though. :slight_smile: