Request for Changes-81: New applications for morphological profiles

From OTBWiki
Jump to: navigation, search

[Request for Changes - 81] New applications for morphological profiles

Status

Summary

Adding Applications to use MorphologicalProfiles Filters.

Rationale

This RFC introduce 3 new applications and expose 7 existing filters. (ConvexOrConcaveClassificationFilter, GeodesicMorphologyDecompositionImageFilter, MorphologicalOpeningProfileFilter, MorphologicalClosingProfileFilter, ProfileToProfileDerivativeFilter, ProfileDerivativeToMultiScaleCharacteristicsFilter, MultiScaleConvexOrConcaveClassificationFilter)

Implementation details

Here is the output of 3 new applications to use morphological profiles (launch without parameters).


MorphologicalMultiScaleDecomposition:

Parameters: 
        -progress    <boolean>        Report progress 
MISSING -in          <string>         Input Image  (mandatory)
MISSING -outconvex   <string> [pixel] Output Convex Image  [pixel=uint8/uint16/int16/uint32/int32/float/double] (default value is float) (mandatory)
MISSING -outconcave  <string> [pixel] Output Concave Image  [pixel=uint8/uint16/int16/uint32/int32/float/double] (default value is float) (mandatory)
MISSING -outleveling <string> [pixel] Output Image  [pixel=uint8/uint16/int16/uint32/int32/float/double] (default value is float) (mandatory)
        -channel     <int32>          Selected Channel  (mandatory, default value is 1)
        -ram         <int32>          Available RAM (Mb)  (optional, off by default, default value is 128)
        -structype   <string>         Structuring Element Type [ball/cross] (mandatory, default value is ball)
        -radius      <int32>          Initial radius  (mandatory, default value is 5)
        -step        <int32>          Radius step.  (mandatory, default value is 1)
        -levels      <int32>          Number of levels use for multi scale  (mandatory, default value is 1)
        -inxml       <string>         Load otb application from xml file  (optional, off by default)

Examples: 
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

MorphologicalClassification :

Parameters: 
        -progress  <boolean>        Report progress 
MISSING -in        <string>         Input Image  (mandatory)
MISSING -out       <string> [pixel] Output Image  [pixel=uint8/uint16/int16/uint32/int32/float/double] (default value is float) (mandatory)
        -channel   <int32>          Selected Channel  (mandatory, default value is 1)
        -ram       <int32>          Available RAM (Mb)  (optional, off by default, default value is 128)
        -structype <string>         Structuring Element Type [ball/cross] (mandatory, default value is ball)
        -radius    <int32>          Radius  (mandatory, default value is 5)
        -sigma     <float>          Sigma value for leveling tolerance  (mandatory, default value is 0.5)
        -inxml     <string>         Load otb application from xml file  (optional, off by default)

Examples: 
otbcli_MorphologicalClassification -in ROI_IKO_PAN_LesHalles.tif -channel 1 -structype ball -radius 5 -sigma 0.5 -out output.tif

MorphologicalProfilesAnalysis :

Parameters: 
        -progress                     <boolean>        Report progress 
MISSING -in                           <string>         Input Image  (mandatory)
MISSING -out                          <string> [pixel] Output Image  [pixel=uint8/uint16/int16/uint32/int32/float/double] (default value is float) (mandatory)
        -channel                      <int32>          Selected Channel  (mandatory, default value is 1)
        -ram                          <int32>          Available RAM (Mb)  (optional, off by default, default value is 128)
        -structype                    <string>         Structuring Element Type [ball/cross] (mandatory, default value is ball)
        -size                         <int32>          Profile Size  (mandatory, default value is 5)
        -radius                       <int32>          Initial radius  (mandatory, default value is 5)
        -step                         <int32>          Radius step.  (mandatory, default value is 1)
        -profile                      <string>         Profile [opening/closing/derivativeopening/derivativeclosing/openingcharacteristics/closingcharacteristics/classification] (mandatory, default value is opening)
        -profile.classification.sigma <float>          Sigma value for leveling tolerance  (mandatory, default value is 1)
        -inxml                        <string>         Load otb application from xml file  (optional, off by default)

Examples: 
otbcli_MorphologicalProfilesAnalysis -in ROI_IKO_PAN_LesHalles.tif -channel 1 -structype ball -profile classification -size 5 -radius 1 -step 1 -profile.classification.sigma 1 -out output.tif

Classes and files

Correct a BUG where concave and convex outputs were inversed.

M       Modules/Segmentation/MorphologicalProfiles/include/otbGeodesicMorphologyIterativeDecompositionImageFilter.txx

Applications

Adding 3 new applications in Modules/applications/AppMorphology :

  • MorphologicalMultiScaleDecomposition.
  • MorphologicalClassification.
  • MorphologicalProfilesAnalysis.
M       Modules/Applications/AppMorphology/app/CMakeLists.txt
A       Modules/Applications/AppMorphology/app/otbMorphologicalMultiScaleDecomposition.cxx
A       Modules/Applications/AppMorphology/app/otbMorphologicalProfilesAnalysis.cxx
A       Modules/Applications/AppMorphology/app/otbMorphologicalClassification.cxx
M       Modules/Applications/AppMorphology/otb-module.cmake

MorphologicalMultiScaleDecomposition use BUG corrected version of GeodesicMorphologyIterativeDecompositionImageFilter. MorphologicalClassification use otbConvexOrConcaveClassificationFilter. MorphologicalProfilesAnalysis apply different filter depending on the input parameter 'profil' :

Profile OTB Filter Output
Opening otbMorphologicalOpeningProfileFilter 1 image with N bands
Closing otbMorphologicalClosingProfileFilter 1 image with N bands
Derivative Opening/Closing otbProfileToProfileDerivativeFilter 1 image with N bands
Multi Scale Characteristics otbProfileDerivativeToMultiScaleCharacteristicsFilter 1 image with 1 band
Multi Scale Classification otbProfileDerivativeToMultiScaleCharacteristicsFilter 1 labeled image with 1 band

With N the number of iterations.

Tests

Change baseline images for otbGeodesicMorphologyIterativeDecompositionImageFilter BUG correction (just inverting convMap and concMap).

M       Baseline/OTB/Images/msGeodesicMorphologyIterativeDecompositionImageFilter_concMap_1.tif
M       Baseline/OTB/Images/msGeodesicMorphologyIterativeDecompositionImageFilter_concMap_2.tif
M       Baseline/OTB/Images/msGeodesicMorphologyIterativeDecompositionImageFilter_convMap_1.tif
M       Baseline/OTB/Images/msGeodesicMorphologyIterativeDecompositionImageFilter_convMap_2.tif

Adding test for all three applications.

M       Modules/Applications/AppMorphology/test/CMakeLists.txt

MorphologicalMultiScaleDecomposition and MorphologicalProfilesAnalysis use the same baseline images of filter's tests but with one multi-band image instead of multiple output images.

For MorphologicalClassification a new baseline image have been created.

A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_convexIteration_1.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_concaveIteration_2.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_levelingIteration_1.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_convexIteration_2.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_concaveIteration_2.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_levelingIteration_2.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_Iteration_1.tif
A       Baseline/OTB/Images/apTvFEMorphologicalMultiScaleDecomposition_Iteration_2.tif
A       Baseline/OTB/Images/apTvFEMorphologicalProfilesClassification.tif
A       Baseline/OTB/Images/apTvFEMorphologicalProfilesClosingAnalysis.tif
A       Baseline/OTB/Images/apTvFEMorphologicalProfilesOpeningAnalysis.tif

Documentation

Application's documentation come form filter's documentation.

Additional notes