PercolationThreshold3d
Computes the intensity level spread following an axis of propagation in a three-dimensional image.
Access to parameter description
This algorithm determines the maximum intensity that can be "pierced". It can be only applied on grayscale images.
A measurement output object contains information about the propagation, indicating if the volume is pierced and the detected percolation threshold.
The maskAndSeedValues parameter identifies areas of the image in which propagation can be done; therefore, it allows identifying non-porous areas.
Propagation is performed from the seeds, along the user defined axis, through voxels of intensity X verifying the following conditions:
See also
Access to parameter description
This algorithm determines the maximum intensity that can be "pierced". It can be only applied on grayscale images.
A measurement output object contains information about the propagation, indicating if the volume is pierced and the detected percolation threshold.
The maskAndSeedValues parameter identifies areas of the image in which propagation can be done; therefore, it allows identifying non-porous areas.
Propagation is performed from the seeds, along the user defined axis, through voxels of intensity X verifying the following conditions:
- The voxel is connected (adjacent) to a voxel already 'propagated'.
- X is different from the first maskAndSeedValues value.
- X is greater than or equal to the second maskAndSeedValues value.
See also
Function Syntax
This function returns outputMeasurement.
// Function prototype
PercolationThreshold3dMsr::Ptr percolationThreshold3d( std::shared_ptr< iolink::ImageView > inputImage, iolink::Vector2i32 maskAndSeedValues, iolink::Vector2i32 searchRange, PercolationThreshold3d::Axis axis, PercolationThreshold3d::Neighborhood neighborhood, PercolationThreshold3dMsr::Ptr outputMeasurement = NULL );
Class Syntax
Parameters
Parameter Name | Description | Type | Supported Values | Default Value | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
inputImage |
The input grayscale or color image. | Image | Binary, Label, Grayscale or Multispectral | 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. | Vector2i32 | Any value | {0, 255} | ||||||
![]() |
searchRange |
The range inside which the percolation threshold is searched. | Vector2i32 | Any value | {0, 255} | ||||||
![]() |
axis |
The axis along which the propagation is performed.
|
Enumeration | X_AXIS | |||||||
![]() |
neighborhood |
The 3D neighborhood configuration.
|
Enumeration | CONNECTIVITY_26 | |||||||
![]() |
outputMeasurement |
The output measurement result. | PercolationThreshold3dMsr | nullptr |
Object Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); PercolationThreshold3d percolationThreshold3dAlgo; percolationThreshold3dAlgo.setInputImage( foam ); percolationThreshold3dAlgo.setMaskAndSeedValues( {0, 255} ); percolationThreshold3dAlgo.setSearchRange( {0, 255} ); percolationThreshold3dAlgo.setAxis( PercolationThreshold3d::Axis::X_AXIS ); percolationThreshold3dAlgo.setNeighborhood( PercolationThreshold3d::Neighborhood::CONNECTIVITY_26 ); percolationThreshold3dAlgo.execute(); std::cout << "isVolumePierced: " << percolationThreshold3dAlgo.outputMeasurement()->isVolumePierced( ) ;
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto result = percolationThreshold3d( foam, {0, 255}, {0, 255}, PercolationThreshold3d::Axis::X_AXIS, PercolationThreshold3d::Neighborhood::CONNECTIVITY_26 ); std::cout << "isVolumePierced: " << result->isVolumePierced( ) ;