G'MIC is a full-featured open-source
framework for digital image processing,
distributed under the
CeCILL free software licenses (LGPL-like and/or GPL-compatible).
It provides several user interfaces for converting, processing and visualizing
generic image datasets, ranging from 1D scalar signals to 3D+t sequences of multi-spectral volumetric images, which naturally include 2D color images.
We provide these different G'MIC user interfaces:
1 - gmic, a command-line tool for using G'MIC's image processing features from a shell.
In this context, G'MIC can be viewed as a friendly companion to the ImageMagick
or GraphicsMagick software suites.
2 - G'MIC-Qt, a plug-in designed to bring G'MIC's capabilities
to image editing and painting applications like
GIMP,
Krita,
Photoshop,
Affinity Photo,
PaintShop Pro,
PhotoLine
and Paint.NET.
More than 600 filters are already available, sorted by category (Artistic, Black & white, Colors, Contours, Deformations, Degradations, Details, Color Grading, Frames, Layers,
Light & shadows, Patterns, Rendering, Repair, Sequences, etc.).
3 - libgmic, a small, portable, thread-safe and multi-threaded, C++ image processing library designed to be linked with third-party applications.
Its simple API allows programmers to add all G'MIC features in their own software without much effort
(a C API is available as well).
ZArt, a real-time video processing software using the G'MIC processing library.
Other open-source projects integrating G'MIC features include:
Photoflare, a simple but powerful cross-platform image editor.
EKD, free software dedicated to postproduction processing for videos and images.
Flowblade, a multitrack non-linear video editor for Linux released under GPL 3 license.
Photoflow, a fully non-destructive photo retouching program.
Veejay, a visual instrument and realtime video sampler.
The G'MIC source code has been registered with the APP
(French Agency for the Protection of Programs) by the CNRS,
under registration number: IDDN.FR.001.170024.000.S.P.2017.000.21000.
Screenshots
Here are some screenshots illustrating various uses of G'MIC.
They demonstrate how G'MIC can process and visualize various
types of 1D/2D/3D image datasets.
G'MIC serves as a handy toolbox for many image and signal processing applications.
See also the Gallery section for more examples.
You can also try the online version of G'MIC
to explore some of the filters it offers.
Philosophy
G'MIC is focused on designing possibly complex pipelines for converting, processing and visualizing
generic 1D/2D/3D multi-spectral image datasets. This naturally includes color images,
as well as more complex data such as image sequences or 3D(+t) volumetric float-valued datasets.
To do so, G'MIC defines a lightweight but powerful scripting language
(the G'MIC language) dedicated to the design of
image processing operators and pipelines.
G'MIC is an open framework: the default language can be extended with
custom G'MIC-written commands, thereby adding new image filters and effects to the language.
Furthermore, G'MIC already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000).
G'MIC is natively multi-threaded. It uses OpenMP to take advantage of multiple cores
for speeding up the computation of image processing operations.
G'MIC has been designed with portability in mind and runs on different platforms (Windows, Linux, BSD, macOS).
Since 2008, G'MIC has been primarily developed by the
Image Team
of the
GREYC laboratory, in Caen, France,
by permanent researchers working in the field of image processing on a daily basis.
Other interesting technical aspects of G'MIC are:
It can process a wide variety of image types, including multi-spectral
(arbitrary number of channels) and 3D volumetric images, as well as image sequences, or 3D vector objects.
Images with different pixel types are supported, allowing seamless processing of images with 8-bit
or 16-bit integers per channel, as well as float-valued datasets.
It internally works with lists of images. Image manipulations and interactions can be done either grouped or
focused on specific items.
It provides light but efficient visualization modules dedicated to the exploration/viewing of
2D/3D multi-spectral images, 3D vector objects (elevation map, isocurves, isosurfaces,...), or 1D graph plots.
It is highly extensible through the possible inclusion of
custom command files
which add new commands understood by the language interpreter. Thus, users can design their own
image processing library on top of G'MIC.
It provides commands for handling custom interactive windows where users can manage events.
It is based on the latest development version of the CImg Library,
a well-established C++ template image processing toolkit, created and maintained by the same team of developers since 1999.
Team
Project Manager and Main Developer:
David Tschumperlé (G'MIC core, CLI interface, C++ and G'MIC libraries).
@article{Tschumperlé2025,
doi = {10.21105/joss.06618},
url = {https://doi.org/10.21105/joss.06618},
year = {2025},
publisher = {The Open Journal},
volume = {10},
number = {105},
pages = {6618},
author = {David Tschumperlé and Sébastien Fourey and Garry Osgood},
title = {G'MIC: An Open-Source Self-Extending Framework for Image Processing},
journal = {Journal of Open Source Software}
}
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
G'MIC is an open-source software distributed under the
CeCILL free software licenses (LGPL-like and/or GPL-compatible).
Copyrights (C) Since July 2008,
David Tschumperlé - GREYC UMR CNRS 6072, Image Team.