FilterByMeasurement
Preserves a predefined number of objects according to a selected measurement.
Access to parameter description
For an introduction, see:
This algorithm filters objects contained into a label or binary image in accordance with a predefined measurement and a filtering criterion.
If the input image is a binary image, the resulting image is binary. If the input image is a label image, the resulting image is a label image with values sorted with respect to the targets measurement and criterion.
Access to parameter description
For an introduction, see:
This algorithm filters objects contained into a label or binary image in accordance with a predefined measurement and a filtering criterion.
If the input image is a binary image, the resulting image is binary. If the input image is a label image, the resulting image is a label image with values sorted with respect to the targets measurement and criterion.
Function Syntax
This function returns the outputImage output parameter.
// Function prototype. std::shared_ptr< iolink::ImageView > filterByMeasurement( std::shared_ptr< iolink::ImageView > inputObjectImage, std::shared_ptr< iolink::ImageView > inputGrayImage, std::string measurement, FilterByMeasurement::MeasurementFilterType measurementFilterType, int32_t objectCount, std::shared_ptr< iolink::ImageView > outputImage = NULL );
This function returns the outputImage output parameter.
// Function prototype. filter_by_measurement( input_object_image, input_gray_image, measurement = "", measurement_filter_type = FilterByMeasurement.MeasurementFilterType.HIGHEST_VALUES, object_count = 1, output_image = None )
This function returns the outputImage output parameter.
// Function prototype. public static IOLink.ImageView FilterByMeasurement( IOLink.ImageView inputObjectImage, IOLink.ImageView inputGrayImage, string measurement = "", FilterByMeasurement.MeasurementFilterType measurementFilterType = ImageDev.FilterByMeasurement.MeasurementFilterType.HIGHEST_VALUES, Int32 objectCount = 1, IOLink.ImageView outputImage = null );
Class Syntax
Parameters
Class Name | FilterByMeasurement |
---|
Parameter Name | Description | Type | Supported Values | Default Value | |||||
---|---|---|---|---|---|---|---|---|---|
inputObjectImage |
The input binary or label image representing the objects to be filtered. | Image | Binary or Label | nullptr | |||||
inputGrayImage |
The input grayscale image that contains the intensity information. It must have the same dimensions as the object input image. It is only used with measurements requiring an intensity image, and is ignored with other measurements. If it equals null, the object input image will be used as the intensity input image. | Image | Binary, Label or Grayscale | nullptr | |||||
measurement |
The filtering measurement. | Measurement | "" | ||||||
measurementFilterType |
The filtering criterion.
|
Enumeration | HIGHEST_VALUES | ||||||
objectCount |
The number of objects to be retained. | Int32 | >=1 | 1 | |||||
outputImage |
The output image. Its dimensions and type are forced to the same values as the input. | Image | nullptr |
Object Examples
auto polystyrene_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep_label.vip" ); std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" ); FilterByMeasurement filterByMeasurementAlgo; filterByMeasurementAlgo.setInputObjectImage( polystyrene_sep_label ); filterByMeasurementAlgo.setInputGrayImage( polystyrene ); filterByMeasurementAlgo.setMeasurement( "Area2d" ); filterByMeasurementAlgo.setMeasurementFilterType( FilterByMeasurement::MeasurementFilterType::HIGHEST_VALUES ); filterByMeasurementAlgo.setObjectCount( 1 ); filterByMeasurementAlgo.execute(); std::cout << "outputImage:" << filterByMeasurementAlgo.outputImage()->toString();
polystyrene_sep_label = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep_label.vip")) polystyrene = ioformat.read_image(imagedev_data.get_image_path("polystyrene.tif")) filter_by_measurement_algo = imagedev.FilterByMeasurement() filter_by_measurement_algo.input_object_image = polystyrene_sep_label filter_by_measurement_algo.input_gray_image = polystyrene filter_by_measurement_algo.measurement = "Area2d" filter_by_measurement_algo.measurement_filter_type = imagedev.FilterByMeasurement.HIGHEST_VALUES filter_by_measurement_algo.object_count = 1 filter_by_measurement_algo.execute() print( "output_image:", str( filter_by_measurement_algo.output_image ) )
ImageView polystyrene_sep_label = Data.ReadVipImage( @"Data/images/polystyrene_sep_label.vip" ); ImageView polystyrene = ViewIO.ReadImage( @"Data/images/polystyrene.tif" ); FilterByMeasurement filterByMeasurementAlgo = new FilterByMeasurement { inputObjectImage = polystyrene_sep_label, inputGrayImage = polystyrene, measurement = "Area2d", measurementFilterType = FilterByMeasurement.MeasurementFilterType.HIGHEST_VALUES, objectCount = 1 }; filterByMeasurementAlgo.Execute(); Console.WriteLine( "outputImage:" + filterByMeasurementAlgo.outputImage.ToString() );
Function Examples
auto polystyrene_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep_label.vip" ); std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" ); auto result = filterByMeasurement( polystyrene_sep_label, polystyrene, "Area2d", FilterByMeasurement::MeasurementFilterType::HIGHEST_VALUES, 1 ); std::cout << "outputImage:" << result->toString();
polystyrene_sep_label = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep_label.vip")) polystyrene = ioformat.read_image(imagedev_data.get_image_path("polystyrene.tif")) result = imagedev.filter_by_measurement( polystyrene_sep_label, polystyrene, "Area2d", imagedev.FilterByMeasurement.HIGHEST_VALUES, 1 ) print( "output_image:", str( result ) )
ImageView polystyrene_sep_label = Data.ReadVipImage( @"Data/images/polystyrene_sep_label.vip" ); ImageView polystyrene = ViewIO.ReadImage( @"Data/images/polystyrene.tif" ); IOLink.ImageView result = Processing.FilterByMeasurement( polystyrene_sep_label, polystyrene, "Area2d", FilterByMeasurement.MeasurementFilterType.HIGHEST_VALUES, 1 ); Console.WriteLine( "outputImage:" + result.ToString() );