SetDescription("Performs Large scale segmentation");
SetDescription("Performs segmentation of an image, with an optional large scale mode to handle large images.");
// Documentation
SetDocName("Large Scale segmentation");
SetDocLongDescription("This application is dedicated to image segmentation. "
"By handling streaming and OGR framework, it has been optimized for processing large scale data."
"Numerous segmentations algorithms are available."
"The application stream a large image, and for each stream:"
"apply a segmentation algorithm, "
"vectorize the results in polygons and keep-it "
"This application allows to correct some errors due to streaming by stitching polygons."
);
SetDocLimitations(" .");
SetDocName("Segmentation");
SetDocLongDescription("This application allows to perform various segmentation algorithm on an multispectral image. "
"Available segmentation algorithms are two different version of Mean-Shift segmentation algorithm (one beeing multi-threaded),"
" simple pixel based connected components according to a user-defined criterion, and watershed from the gradient of the intensity "
"(norm of spectral bands vector). The application has two different modes that affects the nature of its output.\n\nIn normal mode,"
" the output of the application is a classical image of unique labels identifying the segmented regions. The labeled output can be passed to the "
" ColorMapping application to render regions with contrasted colors. Please note that this mode loads the whole input image into memory, and as such "
" can not handle large images. \n\nTo segment large data, one can use the largescale mode. In this case, the output of the application is a "
" vector file or database. The input image is splitted into tiles (whose size can be set using the tilesize parameter), and each tile is loaded, segmented "
" with the chosen algorithm, vectorized, and writen into the output file or database. This piece-wise behaviour ensure that memory will never get overloaded, "
" and that images of any size can be processed. There are few more options in the largescale mode. The simplify option allows to simplify the geometry "
" (i.e. remove nodes in polygons) according to a user-defined tolerance. The stitch option allows to application to try to stitch together polygons corresponding "
" to segmented region that may have been splitted by the tiling scheme. ");
SetDocLimitations("In normal mode, the application can not handle large input images. Stiching step of largescale mode might become slow with very large input images.");
SetParameterDescription("filter.meanshift.thres","Algorithm iterative scheme will stop if mean-shift "
"vector is below this threshold or if iteration number reached maximum number of iterations.");
AddParameter(ParameterType_Int,"filter.meanshift.maxiter","Maximum number of iterations");
SetParameterDescription("filter.meanshift.maxiter","Algorithm iterative scheme will stop if convergence hasn't been reached after the maximum number of iterations.");
SetParameterDescription("filter.edison.ranger","Range radius defining the radius (expressed in radiometry unit) in the multi-spectral space.");
AddParameter(ParameterType_Int,"filter.edison.minsize","Mininum region size");
SetParameterDescription("filter.edison.minsize","Minimun size of a region in segmentation. Smaller clusters will be merged to the neighbouring cluster with the closest radiometry.");
SetParameterDescription("filter.edison.scale","Scaling of the image before processing. This is useful for images with narrow decimal ranges (like [0,1] for instance). ");
SetParameterDescription("filter.connectedcomponent.expr","User defined criteria based on mathematical condition used for connected component segmentation.");
SetParameterDescription("filter.cc.expr","User defined connection condition, written as a mathematical expression. Available variables are p(i)b(i), intensity_p(i) and distance (example of expression : distance < 10 )");
SetParameterDescription("filter.watershed","The traditionnal watershed algorithm. The height function is the gradient magnitude of the amplitude (square root of the sum of squared bands)");
AddChoice("filter.watershed","Watershed");
SetParameterDescription("filter.watershed","The traditional watershed algorithm. The height function is the gradient magnitude of the amplitude (square root of the sum of squared bands).");
AddChoice("mode.largescale","Tile-based large-scale segmentation with vector output");
SetParameterDescription("mode.largescale","In this mode, the application will output a vector file or database, and process the input image piecewise. This allows to perform segmentation of very large images.");