AddObjectToLabel
Inserts a marker to a label image with a specific value.
Access to parameter description
This algorithm inserts a marker, described in a binary image, to a label image.
The result is a copy of the label image covered by the marker.
The pixels belonging to the marker are set to the value defined by the labelValue parameter.
A label image may be 8, 16 or 32 bits per pixel. By default the result of this algorithm is a 16-bit label image, but if the number of labels exceeds 65,535 then the output image is automatically converted to 32-bit type, and thus can manage more than two billion labels.
Figure 1. (a) Binary image describing the marker to add,
(b) label image in which the marker is inserted, (c) result image with added marker
See also
See related example
Access to parameter description
This algorithm inserts a marker, described in a binary image, to a label image.
The result is a copy of the label image covered by the marker.
The pixels belonging to the marker are set to the value defined by the labelValue parameter.
A label image may be 8, 16 or 32 bits per pixel. By default the result of this algorithm is a 16-bit label image, but if the number of labels exceeds 65,535 then the output image is automatically converted to 32-bit type, and thus can manage more than two billion labels.
(a) |
(b) |
(c) |
(b) label image in which the marker is inserted, (c) result image with added marker
See also
See related example
Function Syntax
This function returns outputLabelImage.
// Function prototype
std::shared_ptr< iolink::ImageView > addObjectToLabel( std::shared_ptr< iolink::ImageView > inputBinaryImage, std::shared_ptr< iolink::ImageView > inputLabelImage, int32_t labelValue, std::shared_ptr< iolink::ImageView > outputLabelImage = NULL );
This function returns outputLabelImage.
// Function prototype. add_object_to_label( input_binary_image, input_label_image, label_value = 1, output_label_image = None )
This function returns outputLabelImage.
// Function prototype. public static IOLink.ImageView AddObjectToLabel( IOLink.ImageView inputBinaryImage, IOLink.ImageView inputLabelImage, Int32 labelValue = 1, IOLink.ImageView outputLabelImage = null );
Class Syntax
Parameters
Parameter Name | Description | Type | Supported Values | Default Value | |
---|---|---|---|---|---|
inputBinaryImage |
The input binary image. | Image | Binary | nullptr | |
inputLabelImage |
The input label image. It must have same dimensions as the binary input image. | Image | Label | nullptr | |
labelValue |
The label value to assign. | Int32 | >=1 | 1 | |
outputLabelImage |
The output label image. Its dimensions are forced to the same values as the input. | Image | nullptr |
Parameter Name | Description | Type | Supported Values | Default Value | |
---|---|---|---|---|---|
input_binary_image |
The input binary image. | image | Binary | None | |
input_label_image |
The input label image. It must have same dimensions as the binary input image. | image | Label | None | |
label_value |
The label value to assign. | int32 | >=1 | 1 | |
output_label_image |
The output label image. Its dimensions are forced to the same values as the input. | image | None |
Parameter Name | Description | Type | Supported Values | Default Value | |
---|---|---|---|---|---|
inputBinaryImage |
The input binary image. | Image | Binary | null | |
inputLabelImage |
The input label image. It must have same dimensions as the binary input image. | Image | Label | null | |
labelValue |
The label value to assign. | Int32 | >=1 | 1 | |
outputLabelImage |
The output label image. Its dimensions are forced to the same values as the input. | Image | null |
Object Examples
auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" ); auto foam_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep_label.vip" ); AddObjectToLabel addObjectToLabelAlgo; addObjectToLabelAlgo.setInputBinaryImage( foam_sep ); addObjectToLabelAlgo.setInputLabelImage( foam_sep_label ); addObjectToLabelAlgo.setLabelValue( 1 ); addObjectToLabelAlgo.execute(); std::cout << "outputLabelImage:" << addObjectToLabelAlgo.outputLabelImage()->toString();
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip")) foam_sep_label = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep_label.vip")) add_object_to_label_algo = imagedev.AddObjectToLabel() add_object_to_label_algo.input_binary_image = foam_sep add_object_to_label_algo.input_label_image = foam_sep_label add_object_to_label_algo.label_value = 1 add_object_to_label_algo.execute() print( "output_label_image:", str( add_object_to_label_algo.output_label_image ) )
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" ); ImageView foam_sep_label = Data.ReadVipImage( @"Data/images/foam_sep_label.vip" ); AddObjectToLabel addObjectToLabelAlgo = new AddObjectToLabel { inputBinaryImage = foam_sep, inputLabelImage = foam_sep_label, labelValue = 1 }; addObjectToLabelAlgo.Execute(); Console.WriteLine( "outputLabelImage:" + addObjectToLabelAlgo.outputLabelImage.ToString() );
Function Examples
auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" ); auto foam_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep_label.vip" ); auto result = addObjectToLabel( foam_sep, foam_sep_label, 1 ); std::cout << "outputLabelImage:" << result->toString();
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip")) foam_sep_label = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep_label.vip")) result = imagedev.add_object_to_label( foam_sep, foam_sep_label, 1 ) print( "output_label_image:", str( result ) )
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" ); ImageView foam_sep_label = Data.ReadVipImage( @"Data/images/foam_sep_label.vip" ); IOLink.ImageView result = Processing.AddObjectToLabel( foam_sep, foam_sep_label, 1 ); Console.WriteLine( "outputLabelImage:" + result.ToString() );