SelectiveDilation2d
            Dilates objects of a two-dimensional binary image conditionally to a local constraint.
Access to parameter description
For an introduction:
Using a threshold of 1 amounts to applying a standard morphological dilation.
        
This operator is smoother than a standard dilation, and softens the appearance of the structuring element in the filtered image.
        
 
          Figure 1. Selective dilation effect:	(a) The binary input image,
(b) standard dilation with 3 iterations, (c) selective dilation with 3 iterations, threshold = 5 
        
See also
		Access to parameter description
For an introduction:
- section Mathematical Morphology
 - section Introduction To Dilation
 
Using a threshold of 1 amounts to applying a standard morphological dilation.
This operator is smoother than a standard dilation, and softens the appearance of the structuring element in the filtered image.
        ![]() (a)  | 
        ![]() (b)  | 
        ![]() (c)  | 
(b) standard dilation with 3 iterations, (c) selective dilation with 3 iterations, threshold = 5
See also
Function Syntax
This function returns the outputBinaryImage output parameter.
                        
                    
// Function prototype.
std::shared_ptr< iolink::ImageView >
selectiveDilation2d( std::shared_ptr< iolink::ImageView > inputBinaryImage,
                     uint32_t numberOfIterations,
                     uint32_t threshold,
                     std::shared_ptr< iolink::ImageView > outputBinaryImage = NULL );
                    
This function returns the outputBinaryImage output parameter.
                        
                    
// Function prototype.
selective_dilation_2d( input_binary_image,
                       number_of_iterations = 3,
                       threshold = 5,
                       output_binary_image = None )
                    
This function returns the outputBinaryImage output parameter.
                        
                
// Function prototype.
public static IOLink.ImageView
SelectiveDilation2d( IOLink.ImageView inputBinaryImage,
                     UInt32 numberOfIterations = 3,
                     UInt32 threshold = 5,
                     IOLink.ImageView outputBinaryImage = null );
                    Class Syntax
Parameters
| Class Name | SelectiveDilation2d | 
|---|
| Parameter Name | Description | Type | Supported Values | Default Value | |
|---|---|---|---|---|---|
![]()  | 
  inputBinaryImage    | 
 The binary input image. | Image | Binary | nullptr | 
![]()  | 
  numberOfIterations    | 
 The number of iterations. | UInt32 | >=1 | 3 | 
![]()  | 
  threshold    | 
 The minimum number of foreground neighbors that is required to transform a background pixel into a background one. | UInt32 | [1, 8] | 5 | 
![]()  | 
  outputBinaryImage    | 
 The binary output image. Its size and type are forced to the same values as the input. | Image | nullptr | |
Object Examples
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" ); SelectiveDilation2d selectiveDilation2dAlgo; selectiveDilation2dAlgo.setInputBinaryImage( polystyrene_sep ); selectiveDilation2dAlgo.setNumberOfIterations( 3 ); selectiveDilation2dAlgo.setThreshold( 5 ); selectiveDilation2dAlgo.execute(); std::cout << "outputBinaryImage:" << selectiveDilation2dAlgo.outputBinaryImage()->toString();
polystyrene_sep = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep.vip"))
selective_dilation_2d_algo = imagedev.SelectiveDilation2d()
selective_dilation_2d_algo.input_binary_image = polystyrene_sep
selective_dilation_2d_algo.number_of_iterations = 3
selective_dilation_2d_algo.threshold = 5
selective_dilation_2d_algo.execute()
print( "output_binary_image:", str( selective_dilation_2d_algo.output_binary_image ) );
            
ImageView polystyrene_sep = Data.ReadVipImage( @"Data/images/polystyrene_sep.vip" );
SelectiveDilation2d selectiveDilation2dAlgo = new SelectiveDilation2d
{
    inputBinaryImage = polystyrene_sep,
    numberOfIterations = 3,
    threshold = 5
};
selectiveDilation2dAlgo.Execute();
Console.WriteLine( "outputBinaryImage:" + selectiveDilation2dAlgo.outputBinaryImage.ToString() );
            Function Examples
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" ); auto result = selectiveDilation2d( polystyrene_sep, 3, 5 ); std::cout << "outputBinaryImage:" << result->toString();
polystyrene_sep = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep.vip"))
result = imagedev.selective_dilation_2d( polystyrene_sep, 3, 5 )
print( "output_binary_image:", str( result ) );
            ImageView polystyrene_sep = Data.ReadVipImage( @"Data/images/polystyrene_sep.vip" ); IOLink.ImageView result = Processing.SelectiveDilation2d( polystyrene_sep, 3, 5 ); Console.WriteLine( "outputBinaryImage:" + result.ToString() );




