SelectiveOpening2d
Opens 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 opening.
This operator is smoother than the classic opening, 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 Opening
It can be applied only on binary images. Using a threshold of 1 amounts to applying a standard morphological opening.
This operator is smoother than the classic opening, 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 > selectiveOpening2d( 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_opening_2d( input_binary_image, number_of_iterations = 3, threshold = 5, output_binary_image = None )
This function returns outputBinaryImage.
// Function prototype. public static IOLink.ImageView SelectiveOpening2d( IOLink.ImageView inputBinaryImage, UInt32 numberOfIterations = 3, UInt32 threshold = 5, IOLink.ImageView outputBinaryImage = null );
Class Syntax
Parameters
Class Name | SelectiveOpening2d |
---|
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" ); SelectiveOpening2d selectiveOpening2dAlgo; selectiveOpening2dAlgo.setInputBinaryImage( polystyrene_sep ); selectiveOpening2dAlgo.setNumberOfIterations( 3 ); selectiveOpening2dAlgo.setThreshold( 5 ); selectiveOpening2dAlgo.execute(); std::cout << "outputBinaryImage:" << selectiveOpening2dAlgo.outputBinaryImage()->toString();
polystyrene_sep = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep.vip")) selective_opening_2d_algo = imagedev.SelectiveOpening2d() selective_opening_2d_algo.input_binary_image = polystyrene_sep selective_opening_2d_algo.number_of_iterations = 3 selective_opening_2d_algo.threshold = 5 selective_opening_2d_algo.execute() print( "output_binary_image:", str( selective_opening_2d_algo.output_binary_image ) )
ImageView polystyrene_sep = Data.ReadVipImage( @"Data/images/polystyrene_sep.vip" ); SelectiveOpening2d selectiveOpening2dAlgo = new SelectiveOpening2d { inputBinaryImage = polystyrene_sep, numberOfIterations = 3, threshold = 5 }; selectiveOpening2dAlgo.Execute(); Console.WriteLine( "outputBinaryImage:" + selectiveOpening2dAlgo.outputBinaryImage.ToString() );
Function Examples
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" ); auto result = selectiveOpening2d( 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_opening_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.SelectiveOpening2d( polystyrene_sep, 3, 5 ); Console.WriteLine( "outputBinaryImage:" + result.ToString() );