MorphologicalMultiScaleDecomposition - Morphological Multi Scale Decomposition ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Perform a geodesic morphology based image analysis on an input image channel Detailed description -------------------- This application recursively apply geodesic decomposition. This algorithm is derived from the following publication: Martino Pesaresi and Jon Alti Benediktsson, Member, IEEE: A new approach for the morphological segmentation of high resolution satellite imagery. IEEE Transactions on geoscience and remote sensing, vol. 39, NO. 2, February 2001, p. 309-320. It provides a geodesic decomposition of the input image, with the following scheme. Let :math:`f_0` denote the input image, :math:`\stackrel{\smile}{\mu}_{N}(f)` denote the convex membership function, :math:`\stackrel{\frown}{\mu}_{N}(f)` denote the concave membership function and :math:`\psi_{N}(f)` denote the leveling function, for a given radius :math:`N` as defined in the documentation of the GeodesicMorphologyDecompositionImageFilter. Let :math:`[N_{1},\ldots, N_{n}]` denote a range of increasing radius (or scales). The iterative decomposition is defined as follows: :math:`f_i` = :math:`\psi_{N_i}(f_{i-1})` :math:`\stackrel{\frown}{f}_i` = :math:`\stackrel{\frown}{\mu}_{N_i}(f_i)` :math:`\stackrel{\smile}{f}_i` = :math:`\stackrel{\smile}{\mu}_{N_i}(f_i)` The :math:`\stackrel{\smile}{f}_{i}` and :math:`\stackrel{\frown}{f}_{i}` are membership function for the convex (resp. concave) objects whose size is comprised between :math:`N_{i-1}` and :math:`N_i` Output convex, concave and leveling images with B bands, where n is the number of levels. Parameters ---------- This section describes in details the parameters available for this application. Table [#]_ presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is *MorphologicalMultiScaleDecomposition* . .. [#] Table: Parameters table for Morphological Multi Scale Decomposition. +---------------+------------------------------------+--------------------------+ |Parameter Key |Parameter Name |Parameter Type | +===============+====================================+==========================+ |in |Input Image |Input image | +---------------+------------------------------------+--------------------------+ |outconvex |Output Convex Image |Output image | +---------------+------------------------------------+--------------------------+ |outconcave |Output Concave Image |Output image | +---------------+------------------------------------+--------------------------+ |outleveling |Output Image |Output image | +---------------+------------------------------------+--------------------------+ |channel |Selected Channel |Int | +---------------+------------------------------------+--------------------------+ |ram |Available RAM (Mb) |Int | +---------------+------------------------------------+--------------------------+ |structype |Structuring Element Type |Choices | +---------------+------------------------------------+--------------------------+ |structype ball |Ball | *Choice* | +---------------+------------------------------------+--------------------------+ |structype cross|Cross | *Choice* | +---------------+------------------------------------+--------------------------+ |radius |Initial radius |Int | +---------------+------------------------------------+--------------------------+ |step |Radius step. |Int | +---------------+------------------------------------+--------------------------+ |levels |Number of levels use for multi scale|Int | +---------------+------------------------------------+--------------------------+ |inxml |Load otb application from xml file |XML input parameters file | +---------------+------------------------------------+--------------------------+ |outxml |Save otb application to xml file |XML output parameters file| +---------------+------------------------------------+--------------------------+ - **Input Image**: The input image to be classified. - **Output Convex Image**: The output convex image with N bands. - **Output Concave Image**: The output concave concave with N bands. - **Output Image**: The output leveling image with N bands. - **Selected Channel**: The selected channel index for input image. - **Available RAM (Mb)**: Available memory for processing (in MB). - **Structuring Element Type**: Choice of the structuring element type. Available choices are: * **Ball** * **Cross** - **Initial radius**: Initial radius of the structuring element (in pixels). - **Radius step.**: Radius step along the profile (in pixels). - **Number of levels use for multi scale**: Number of levels use for multi scale. - **Load otb application from xml file**: Load otb application from xml file. - **Save otb application to xml file**: Save otb application to xml file. Example ------- To run this example in command-line, use the following: :: otbcli_MorphologicalMultiScaleDecomposition -in ROI_IKO_PAN_LesHalles.tif -structype ball -channel 1 -radius 2 -levels 2 -step 3 -outconvex convex.tif -outconcave concave.tif -outleveling leveling.tif To run this example from Python, use the following code snippet: :: #!/usr/bin/python # Import the otb applications package import otbApplication # The following line creates an instance of the MorphologicalMultiScaleDecomposition application MorphologicalMultiScaleDecomposition = otbApplication.Registry.CreateApplication("MorphologicalMultiScaleDecomposition") # The following lines set all the application parameters: MorphologicalMultiScaleDecomposition.SetParameterString("in", "ROI_IKO_PAN_LesHalles.tif") MorphologicalMultiScaleDecomposition.SetParameterString("structype","ball") MorphologicalMultiScaleDecomposition.SetParameterInt("channel", 1) MorphologicalMultiScaleDecomposition.SetParameterInt("radius", 2) MorphologicalMultiScaleDecomposition.SetParameterInt("levels", 2) MorphologicalMultiScaleDecomposition.SetParameterInt("step", 3) MorphologicalMultiScaleDecomposition.SetParameterString("outconvex", "convex.tif") MorphologicalMultiScaleDecomposition.SetParameterString("outconcave", "concave.tif") MorphologicalMultiScaleDecomposition.SetParameterString("outleveling", "leveling.tif") # The following line execute the application MorphologicalMultiScaleDecomposition.ExecuteAndWriteOutput() Limitations ~~~~~~~~~~~ Generation of the multi scale decomposition is not streamable, pay attention to this fact when setting the number of iterating levels. Authors ~~~~~~~ This application has been written by OTB-Team. See Also ~~~~~~~~ These additional resources can be useful for further information: | otbGeodesicMorphologyDecompositionImageFilter class