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

A Full-Featured Open-Source Framework for Image Processing



Latest stable version: 3.3.5        Current pre-release: 3.3.6 (2024/04/12)

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/parallelepipedic domain.
The four dimensions of this array are respectively denoted by:
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 usual color or grayscale 2D images.
spectrum, the number of image channels (size along the c-axis). The spectrum is respectively equal to 3 and 4 for usual RGB and RGBA color images.

There are no hard limitations 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 has a multi-spectral meaning. Thus, a 4D image in G'MIC should be most often regarded as a 3D dataset of multi-spectral voxels. Most of the G'MIC commands will stick with this idea (e.g. command blur blurs images only along the 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 takes then 32bits/channel (except if double-precision buffers have been enabled during the compilation of the software, in which case 64bits/channel can be the default).
Considering float-valued pixels ensure to keep numerical precision when executing image processing pipelines. For image input/output operations, you may want to prescribe the image datatype to be different than float (like 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).

◀  Overall Context    |    Items of a Processing Pipeline  ▶
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.