cml_decompose Compute all the cmorpho_lines of a color image
cml_decompose [-c cmimage_in] [-o ml_opt] [-l L] image_in cmimage
-c cmimage_in : original image in Cmimage structure
-o ml_opt : choose form of morpho_lines
-l L : Minimal level lines length to be kept
image_in : original color image
cmimage : cmimage with all morpho_lines
Cmimage cml_decompose (cmimage_in , ml_opt , L , image_in )
Cmimage cmimage_in ;
int *ml_opt ;
int *L ;
Cfimage image_in ;
This module computes a decomposition of image_in into cmorpho_lines. It works as the module ml_decompose, but if the later assumes gray level images only, cml_decompose can be applied on 3-planes color images.
Please read before the description of ml_decompose, and notice that the only binary relation used on image's values to build the decomposition is the total order defined on reals (an ordering relation is total if two elements are always comparable) . Thus, the extension of the algorithm to multi-valued images is straightforward as soon as one can recover a total order in IR3 that fits the visual perception of geometrical structures. In [CF00], a lexicographic ordering relation is proposed in the framework of topographic maps of color images :
Let L, H and S be the values of the image in the HSI color model (L stands for Luminance or Intensity, H for Hue and S for Saturation). One sets
The module cml_decompose allows to compute such a topographic map of the input color image. Since the algorithm assumes the HSI color model, the planes of the input image must be HSI. Use the module cfchgchannel to convert a RGB image to a HSI one. Before calling cml_decompose, you may also want to quantize the HSI channels using cfquant so that the amount of data would be reduced.
The option -l is very useful to reduce the number of level lines in the topographic map without removing too many visual information : it fixes the minimal length a level line must have in order to be kept (by default all level lines are recorded). This operation, very similar to the grain filter , may also be done afterward by cll_remove. See also the example of processing in the documentation of cml_reconstruct.
Last Modification date : Thu Apr 15 08:22:05 2004
Jacques Froment, Georges Koepfler