Tutorial

Introduction


G'MIC
On the piece of the planet that I inhabit, , GREYC's Magic for Image Computing, falls deep within the shadow cast by ImageMagick.

Google ImageMagick and you will garner hundreds of hits, all relevant, crowding your first dozen pages or so. In contrast Googling G'MIC turns up “GMIC - Silicon Valley's Largest Mobile Conference and Expo”, “Green Meeting Industry Council” and, lest we forget, the “Glass Manufacturing Industry Council.” To be sure, G'MIC's page is in the mix, one of many brand contenders.

original/gmic_front.jpg r2dx 400

David Tschumperlé and other moving spirits behind G'MIC seem little perturbed by this encroaching anonymity. They know what they have – a real good image processing pipeline – which they cheerfully maintain for their own purposes and those of a loyal band of cognoscenti. So the rest of the world, it seems, can go hang. David Tschumperlé and friends are too busy image processing to spoon-feed a marketing blitz to anyone.

In real life, Dr. Tschumperlé is a research scientist at GREYC Laboratory in Caen, France, and G'MIC is a part of that life. Every process which generates images also generates noise. A better separation of signal from noise is what motivates much of G'MIC and its underlying CImg library. The worry of confounding the reality of tumors with splotches of noise unsettles everyone, and such serious mindedness engenders an intensity of purpose. That notwithstanding, many image processing algorithms also serve artistic goals, a fact that has not been lost on Dr. Tschumperlé or his team, and they have fashioned a suite of access toolkits which let the rest of us in on the fun.

This toolkit consists of a GIMP plugin, which is a visual interface for artists, a G'MIC interpreter, a tool for designing and executing image processing pipelines, a web service, which will filter images without requiring any locally installed software, ZArt, a GUI tool for real-time manipulations of video streams, and an application interface library so programmers can wrap their own applications around CImg and G'MIC.

The most well-known component is the GIMP plugin, a monster among its siblings. Most GIMP plugins implement an effect or two. The G'MIC plugin harbors some twenty groupings of effects, each containing from half a dozen to more than two dozen effects each – nearly five hundred in version 1.5.8.1 (December 2013). Many effects have multiple settings. One might spend weeks exploring the possibilities inherent in one effect, and years exploring the whole library. There are a number of active discussion groups (GIMPChat/G'MIC), supporting the G'MIC GIMP plugin.

Alas, there is not as much information lying around for the standalone G'MIC interpreter, which is a shame, as the GIMP G'MIC plugin is built on top of the interpreter and knowledge of the interpreter is essential in extending the plugin. Like the more well-known ImageMagick, the G'MIC interpreter embodies the notion of a pipeline -- a sequence of images upon which a gamut of processing tools operate. Particular operations begin life on (rather long) command lines, but these are soon subsumed in script files and become G'MIC commands in their own right, for G'MIC is a self-extending interpreter. Possibly this mode of operation is a bit intimidating, so people naturally gravitate away from the interpreter to the friendly GIMP plugin. That is perfectly fine, however it has engendered a dearth of documentation on the interpreter itself. That is unfortunate, because when one encounters a need for a pipeline – a tool which can uniformly apply operations upon many images – the one-shot character of the GIMP plugin is not ideal. The underlying G'MIC interpreter is the better choice.

There are a few interpreter-specific gems lying around. Dr. Tschumperlé has written a a massive reference manual for the interpreter. While encyclopedic, it does not quite develop a sense of how the whole articulates together. He has also written a nice introduction to the G'MIC interpreter which does give a sense of how the whole articulates together. Others at the SourceForge G'MIC wiki offer pearls of wisdom, situated at various levels of expertise. In the future, perhaps, there will be a G'MIC user manual and a nice cookbook. Until such niceties come along, builders of image processing pipelines will have to content themselves with ad-hoc recipes, such as the few I have assembled here.

For those new to the G'MIC interpreter, the first four topics in the following list constitutes a primer. The fifth topic, the Command Guide, embodies the meat of the interpreter. At this writing (January, 2014), it contains little more than the G'MIC Handbook, which is tersely sufficient for the experienced user but mysterious for beginners. One of the long term goals of this project is to amplify on that terseness, but that will be a while.

  1. Basics
  2. Images
  3. Command Decorations
  4. Beginner's Cookbook
  5. Command Guide