Pangram verdict · v3.3
We believe that this text is a mix of AI-assisted and human-written content.
AI likelihood · overall
MixedArticle text · 1,529 words · 8 segments analyzed
Eighteen years after its debut, G’MIC, our free and open-source framework for digital image processing, reaches a major milestone with the release of a new major version, numbered 4.0 — the version of maturity! As we do every year, this is the opportunity to look back at the recent developments of the project since our last update published in August 2025. Note: Click on the images to view them in full resolution, or to watch a corresponding video when they feature the icon 1. G’MIC: An Open-Source Framework for Digital Image Processing The G'MIC project (GREYC's Magic for Image Computing) was born in July 2008 and grew within the IMAGE team of the GREYC laboratory in Caen, France (a Joint Research Unit under the joint authority of CNRS, ENSICAEN, and the University of Caen). Its purpose: to provide a free, open, and extensible framework for the manipulation, processing, and creation of digital images. To achieve this, it relies on the features of the CImg open-source C++ image processing library, developed since 1999—first at INRIA, and later within the IMAGE team of the GREYC (also by yours truly). At the heart of the project lies a dedicated scripting language interpreter, the "G'MIC language", specifically designed for rapid prototyping of new image processing algorithms and chaining them into custom pipelines (or filters). Built around this core are several interfaces that grant users access to hundreds of predefined image processing operators. These include the gmic command-line tool, the G'MIC Online web service, and the G'MIC-Qt plugin, which can be integrated into various image editing and creation software such as GIMP, Krita, digiKam, Paint.net, Adobe Photoshop, or Affinity Photo. Today, this plugin is the project's most popular interface, averaging over 1,200 daily downloads, a figure that has been steadily growing over the past year. It offers over 640 varied filters to tweak your images and expand the capabilities of host editing software, making it particularly appreciated by digital artists. This major 4.0 release marks a turning point for the project: the syntax of the G'MIC language, the interpreter code, and the associated image-processing algorithms are now mature and well-proven. Therefore, we intend to slow down the pace of new releases and feature additions a bit, in order to focus on the stability, robustness, and performance of the framework. Fig. 1.1. Overview of some of the interfaces offered by the G'MIC project: G'MIC-Qt plugin for GIMP (top left), CLI tool gmic (top right), G'MIC Online web service (bottom). 2. New Filters in the G'MIC-Qt Plugin Regarding the G'MIC-Qt plugin, most of the new features focus on the introduction of new image processing filters. Version 4.0 brings the total number of filters to 644, all directly accessible from the graphical interface. Below is a list of the latest additions.2.1. "Rendering / Pixel Stretch" Filter The "Rendering / Pixel Stretch" filter allows the user to select a "strip of pixels" and duplicate it across the image along a customizable path, defined by two spline curves (one for each edge of the strip). Fig. 2.1.1. The "Rendering / Pixel Stretch" filter as it appears in the G'MIC-Qt plugin. Fig. 2.1.2. Render example from the "Rendering / Pixel Stretch" filter, featuring two pixel trails added by the filter. This effect gives the impression that the image has been stretched locally, much like an elastic dough. It can be used to suggest or stylize movement in an image, as shown in the example below (taken from the video tutorial that Miguel Pineau specifically dedicated to this filter). It is also highly suitable for glitch art or creating abstract textures. Fig. 2.1.3. The "Rendering / Pixel Stretch" filter used to stylize a dancer's movement (Credits: Miguel Pineau). 2.2. "Rendering / Gradients [Poles]" Filter Also in the "Rendering" section, we have the new "Rendering / Gradients [Poles]" filter. It generates color gradients by spatially interpolating colored key points, whose positions and colors are chosen by the user. The interpolation uses radial basis functions, resulting in smooth and harmonious color transitions. Users can also select the color space in which the interpolation is computed. The animation below illustrates how the filter works within the plugin. Fig. 2.2.1. The "Rendering / Gradients [Poles]" filter creates potentially complex spatial color gradients from just a few control points. 2.3. "Artistic / Marker Drawing" Filter Next is the "Artistic / Marker Drawing" filter, which, as its name suggests, attempts to redraw an input image using colored marker strokes. The underlying algorithm draws random colored splines on a white canvas along the contours of the geometric structures found in the original image. Fig. 2.3.1. The "Artistic / Marker Drawing" filter redraws an image, simulating the use of colored felt-tip pens. The filter's numerous adjustable parameters allow for a wide variety of potential renders, ranging from realistic to highly abstract, as shown in the comparison below: _Fig. 2.3.2. Three different render styles from the "Artistic / Marker Drawing" filter, using three distinct parameter sets._ 2.4.
"Deformations / Heightfield Warp" Filter Let's shift focus with the "Deformations / Heightfield Warp" filter, which creates a 3D effect by warping an input image as if it were mapped onto a parametrically defined height map. An optional lighting effect, based on Phong shading, can be enabled to enhance the perceived 3D volume generated by this filter.
Fig. 2.4.1. The "Deformations / Heightfield Warp" filter as it appears in G'MIC-Qt, shown here with an elevation mapping corresponding to a dome-like hemisphere facing the camera. This filter is highly flexible, allowing users to explicitly define custom mathematical formulas for height maps. Budding mathematicians can let their imagination run wild to distort their images! Fig. 2.4.2. Application of three custom 3D height map formulas using the "Deformations / Heightfield Warp" filter. 2.5. "Degradations / Offset Stripes" Filter Glitch art enthusiasts might appreciate the new "Degradations / Offset Stripes" filter, which introduces offset horizontal and/or vertical strips with randomized displacement amplitudes. Fig. 2.5.1. The "Degradations / Offset Stripes" filter applies random offsets to horizontal and/or vertical image strips.
While the core concept is simple, the numerous parameters offer uncorrelated displacements for each channel across various color spaces. Combined with iterative options, this allows for a wide range of "glitch-style" image degradations, as shown below. Fig. 2.5.2. Results of various parameter combinations for the "Degradations / Offset Stripes" filter applied to a single portrait. 2.6. "Colors / Transfer Colors [Multi]" Filter To wrap up this overview of G'MIC-Qt's new filters, we have saved a highly interesting addition for last: the "Colors / Transfer Colors [Multi]" filter, which transfers colors between two images. Color transfer involves applying a color transformation to a source image based on a second style reference image whose color scheme or atmosphere we wish to reproduce. This transformation is designed to preserve the original structures (edges, objects, semantic content) of the source image as much as possible.
Fig. 2.6.1. The principle of color transfer: a _source image (left) is modified (right) to adopt the colors of a style reference image (center)._ From an algorithmic perspective, there are various approaches to color transfer. The "Colors / Transfer Colors [Multi]" filter supports three different methods: a PCA-based method, a histogram matching method, and a variational approach. To use this filter in G'MIC-Qt, simply apply it to an image with two overlapping layers: one for the source image and another for the style reference image containing the target colors. Fig. 2.6.2. The "Colors / Transfer Colors [Multi]" filter in G'MIC-Qt interface. The variational color transfer algorithm implemented in this filter is a custom development resulting from a research collaboration between two members of the IMAGE team at the GREYC laboratory in Caen (D. Tschumperlé and J. Rabin) and a professor from the LMI mathematics laboratory at INSA Rouen (C. Le Guyader). In short, this is a 100% Norman algorithm that runs udderly well 🐄 😉, and you won't find it anywhere else! We would like to warmly thank the Normandy Research Federation for Information and Communication Sciences and Technologies (NormaSTIC) for the financial support that facilitated and kickstarted this collaboration!
Our method features several unique characteristics designed to produce robust and high-quality color transfers compared to other approaches, operating quickly and fully automatically. The figure below displays examples of color transfers obtained on a single source image using various style reference images, with the filter's default settings.
Fig. 2.6.3. Examples of color transfers performed by the "Colors / Transfer Colors [Multi]" filter on the same _source image using different style reference images._ The proposed technique also features a semi-supervised mode, allowing users to force specific color correspondences. This guides the algorithm toward a more constrained and tailored transfer. The two examples below showcase this control mechanism: Fig. 2.6.4. Guiding the color transfer algorithm by forcing specific color correspondences (Parakeet → Great Tit). Here, the green feathers of the parakeet (a) are perceptually closer to the yellow body of the great tit (b), which is why the default transfer algorithm matches them (result (c)).
By defining desired color correspondences (the lines between images (a) and (b)), users can override this behavior and force the transfer of the great tit's blue color to the parakeet's green feathers (result (d)).