EstimateShortestPath3d
Creates a binary image representing the shortest path following an axis of propagation through a three-dimensional image.
Access to parameter description
This algorithm provides a binary image representing the shortest path traveled by the flood fill propagation from a seed in porous phase.
The image is obtained by summing the 2 distance images (top to bottom and bottom to top) and then thresholding the intensity level equal to the minimum distance traveled from the seed.
Propagation is performed from the seeds, along the user defined axis, through voxels of intensity X verifying the following four conditions:
See also
Access to parameter description
This algorithm provides a binary image representing the shortest path traveled by the flood fill propagation from a seed in porous phase.
The image is obtained by summing the 2 distance images (top to bottom and bottom to top) and then thresholding the intensity level equal to the minimum distance traveled from the seed.
Propagation is performed from the seeds, along the user defined axis, through voxels of intensity X verifying the following four conditions:
- The voxel is connected (adjacent) to a voxel already 'propagated'.
- X is different from the first maskAndSeedValues value.
- X is greater or equal to the second maskAndSeedValues value.
- X is smaller or equal to the maximumThreshold value.
See also
Function Syntax
This function returns outputBinaryImage.
// Function prototype
std::shared_ptr< iolink::ImageView > estimateShortestPath3d( std::shared_ptr< iolink::ImageView > inputImage, iolink::Vector2i32 maskAndSeedValues, int32_t maximumThreshold, EstimateShortestPath3d::Axis axis, std::shared_ptr< iolink::ImageView > outputBinaryImage = NULL );
This function returns outputBinaryImage.
// Function prototype. estimate_shortest_path_3d( input_image, mask_and_seed_values = [255, -1024], maximum_threshold = 128, axis = EstimateShortestPath3d.Axis.Z_AXIS, output_binary_image = None )
This function returns outputBinaryImage.
// Function prototype. public static IOLink.ImageView EstimateShortestPath3d( IOLink.ImageView inputImage, int[] maskAndSeedValues = null, Int32 maximumThreshold = 128, EstimateShortestPath3d.Axis axis = ImageDev.EstimateShortestPath3d.Axis.Z_AXIS, IOLink.ImageView outputBinaryImage = null );
Class Syntax
Parameters
Class Name | EstimateShortestPath3d |
---|
Parameter Name | Description | Type | Supported Values | Default Value | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
inputImage |
The input grayscale, binary, or color image. In the case of a binary image, the background represents the phase where the propagation has to be performed. | Image | Binary, Label or Grayscale | nullptr | |||||||
maskAndSeedValues |
The first value is a mask value. Voxels with this intensity value are not infiltrated by the propagation. The second value is the seed value. Voxels with an intensity value lower than this seed value are not infiltrated by the propagation. A value lower than the second value of maskAndSeedValues or greater or equal to maximumThreshold is ignored. This parameter is ignored in binary case, and then is forced to [2, 0]. | Vector2i32 | Any value | {255, -1024} | |||||||
maximumThreshold |
The maximum propagation intensity value. Voxels having an intensity value greater or equal to this value are rejected by the propagation. This parameter is ignored in binary case, and is forced to 1. | Int32 | Any value | 128 | |||||||
axis |
The axis along which the propagation is performed.
|
Enumeration | Z_AXIS | ||||||||
outputBinaryImage |
The binary output image represents the shortest propagation path seeds. Its dimensions are forced to the same values as the input. | Image | nullptr |
Object Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); EstimateShortestPath3d estimateShortestPath3dAlgo; estimateShortestPath3dAlgo.setInputImage( foam ); estimateShortestPath3dAlgo.setMaskAndSeedValues( {255, -1024} ); estimateShortestPath3dAlgo.setMaximumThreshold( 128 ); estimateShortestPath3dAlgo.setAxis( EstimateShortestPath3d::Axis::X_AXIS ); estimateShortestPath3dAlgo.execute(); std::cout << "outputBinaryImage:" << estimateShortestPath3dAlgo.outputBinaryImage()->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) estimate_shortest_path_3d_algo = imagedev.EstimateShortestPath3d() estimate_shortest_path_3d_algo.input_image = foam estimate_shortest_path_3d_algo.mask_and_seed_values = [255, -1024] estimate_shortest_path_3d_algo.maximum_threshold = 128 estimate_shortest_path_3d_algo.axis = imagedev.EstimateShortestPath3d.X_AXIS estimate_shortest_path_3d_algo.execute() print( "output_binary_image:", str( estimate_shortest_path_3d_algo.output_binary_image ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); EstimateShortestPath3d estimateShortestPath3dAlgo = new EstimateShortestPath3d { inputImage = foam, maskAndSeedValues = new int[]{255, -1024}, maximumThreshold = 128, axis = EstimateShortestPath3d.Axis.X_AXIS }; estimateShortestPath3dAlgo.Execute(); Console.WriteLine( "outputBinaryImage:" + estimateShortestPath3dAlgo.outputBinaryImage.ToString() );
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto result = estimateShortestPath3d( foam, {255, -1024}, 128, EstimateShortestPath3d::Axis::X_AXIS ); std::cout << "outputBinaryImage:" << result->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) result = imagedev.estimate_shortest_path_3d( foam, [255, -1024], 128, imagedev.EstimateShortestPath3d.X_AXIS ) print( "output_binary_image:", str( result ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); IOLink.ImageView result = Processing.EstimateShortestPath3d( foam, new int[]{255, -1024}, 128, EstimateShortestPath3d.Axis.X_AXIS ); Console.WriteLine( "outputBinaryImage:" + result.ToString() );