SelectiveClosing2d
Closes objects of a two-dimensional binary image conditionally to a local constraint.
Access to parameter description
For an introduction:
It can be applied only on binary images. Using a threshold of 1 amounts to applying a standard morphological closing.
This operator is smoother than the classic closing, and softens the appearance of the structuring element in the filtered image.
See also
Access to parameter description
For an introduction:
- section Mathematical Morphology
- section Introduction To Closing
It can be applied only on binary images. Using a threshold of 1 amounts to applying a standard morphological closing.
This operator is smoother than the classic closing, and softens the appearance of the structuring element in the filtered image.
See also
Function Syntax
This function returns outputBinaryImage.
// Function prototype
std::shared_ptr< iolink::ImageView > selectiveClosing2d( std::shared_ptr< iolink::ImageView > inputBinaryImage, uint32_t numberOfIterations, uint32_t threshold, std::shared_ptr< iolink::ImageView > outputBinaryImage = NULL );
This function returns outputBinaryImage.
// Function prototype. selective_closing_2d( input_binary_image, number_of_iterations = 3, threshold = 5, output_binary_image = None )
This function returns outputBinaryImage.
// Function prototype. public static IOLink.ImageView SelectiveClosing2d( IOLink.ImageView inputBinaryImage, UInt32 numberOfIterations = 3, UInt32 threshold = 5, IOLink.ImageView outputBinaryImage = null );
Class Syntax
Parameters
Class Name | SelectiveClosing2d |
---|
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 neighbors that is required to transform a pixel. | 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" ); SelectiveClosing2d selectiveClosing2dAlgo; selectiveClosing2dAlgo.setInputBinaryImage( polystyrene_sep ); selectiveClosing2dAlgo.setNumberOfIterations( 3 ); selectiveClosing2dAlgo.setThreshold( 5 ); selectiveClosing2dAlgo.execute(); std::cout << "outputBinaryImage:" << selectiveClosing2dAlgo.outputBinaryImage()->toString();
polystyrene_sep = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep.vip")) selective_closing_2d_algo = imagedev.SelectiveClosing2d() selective_closing_2d_algo.input_binary_image = polystyrene_sep selective_closing_2d_algo.number_of_iterations = 3 selective_closing_2d_algo.threshold = 5 selective_closing_2d_algo.execute() print( "output_binary_image:", str( selective_closing_2d_algo.output_binary_image ) )
ImageView polystyrene_sep = Data.ReadVipImage( @"Data/images/polystyrene_sep.vip" ); SelectiveClosing2d selectiveClosing2dAlgo = new SelectiveClosing2d { inputBinaryImage = polystyrene_sep, numberOfIterations = 3, threshold = 5 }; selectiveClosing2dAlgo.Execute(); Console.WriteLine( "outputBinaryImage:" + selectiveClosing2dAlgo.outputBinaryImage.ToString() );
Function Examples
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" ); auto result = selectiveClosing2d( 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_closing_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.SelectiveClosing2d( polystyrene_sep, 3, 5 ); Console.WriteLine( "outputBinaryImage:" + result.ToString() );