G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
Banner Institutions GREYC CNRS ENSICAEN UNICAEN

A Full-Featured Open-Source Framework for Image Processing



Latest stable version: 4.0.2 (2026/07/05)

Reference
Table of Contents  ▸  Image Definition and Terminology◀  Overall Context    |    Items of a Processing Pipeline  ▶

Image Definition and Terminology

In G'MIC, each image is modeled as a 1D, 2D, 3D or 4D array of scalar values, uniformly discretized on a rectangular or parallelepiped domain.
The four dimensions are:
width, the number of image columns (size along the x-axis).
height, the number of image rows (size along the y-axis).
depth, the number of image slices (size along the z-axis). The depth is equal to 1 for typical color or grayscale 2D images.
spectrum, the number of image channels (size along the c-axis). The spectrum is equal to 3 and 4 for standard RGB and RGBA color images, respectively.

There are no hard limit on the size of the image along each dimension. For instance, the number of image slices or channels can be of arbitrary size within the limits of the available memory.
The width, height and depth of an image are considered as spatial dimensions, while the spectrum represents the spectral dimension. Thus, a 4D image in G'MIC should be most often regarded as a 3D dataset of multi-spectral voxels. Most G'MIC commands adhere to this convention (e.g. by default, command blur blurs 4D images only along the three spatial xyz-axes).
G'MIC stores all the image data as buffers of float values (32 bits, value range [-3.4E38,+3.4E38]). It performs all its image processing operations with floating-point numbers. Each image pixel then requires 32 bits per channel (except if double-precision buffers have been enabled during the compilation of the software, in which case 64 bits per channel can be the default).
Using floating-point pixels ensures that numerical precision is maintained when executing image processing pipelines. For image input/output operations, you may want to specify a non-float datatype (such as bool, char, int, etc.). This is possible by specifying it as a file option when using I/O commands (see section Output Properties to learn more about file options).

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.