Delineate3d
Enhances contrast of a three-dimensional image.
Access to parameter description
For an introduction to image filters: see section Images Filtering.
This algorithm provides contrast enhancement of an image using basic morphological transformations.
The delineate filter is based on the fact that a function $f$ is always between the erosion and the dilation of $f$. $$ E(I(n,m,o)) \leq I(n,m,o) \leq D(I(n,m,o)) $$ For each voxel, the output gray level value is assigned to the closest value between the erosion and the dilation of $I(n,m,o)$: $$ O(n,m,o)=\left\{\begin{array}{ll} D(I(n,m,o)) & \mbox {if $\left[D(I(n,m,o))-; I(n,m,o)\right] < \left[E(I(n,m,o))-I(n,m,o)\right]$} \\ E(I(n,m,o)) & \mbox{otherwise} \end{array}\right. $$ See also
Access to parameter description
For an introduction to image filters: see section Images Filtering.
This algorithm provides contrast enhancement of an image using basic morphological transformations.
The delineate filter is based on the fact that a function $f$ is always between the erosion and the dilation of $f$. $$ E(I(n,m,o)) \leq I(n,m,o) \leq D(I(n,m,o)) $$ For each voxel, the output gray level value is assigned to the closest value between the erosion and the dilation of $I(n,m,o)$: $$ O(n,m,o)=\left\{\begin{array}{ll} D(I(n,m,o)) & \mbox {if $\left[D(I(n,m,o))-; I(n,m,o)\right] < \left[E(I(n,m,o))-I(n,m,o)\right]$} \\ E(I(n,m,o)) & \mbox{otherwise} \end{array}\right. $$ See also
Function Syntax
This function returns outputImage.
// Function prototype
std::shared_ptr< iolink::ImageView > delineate3d( std::shared_ptr< iolink::ImageView > inputImage, int32_t kernelRadius, Delineate3d::Neighborhood neighborhood, std::shared_ptr< iolink::ImageView > outputImage = NULL );
This function returns outputImage.
// Function prototype. delineate_3d( input_image, kernel_radius = 3, neighborhood = Delineate3d.Neighborhood.CONNECTIVITY_26, output_image = None )
This function returns outputImage.
// Function prototype. public static IOLink.ImageView Delineate3d( IOLink.ImageView inputImage, Int32 kernelRadius = 3, Delineate3d.Neighborhood neighborhood = ImageDev.Delineate3d.Neighborhood.CONNECTIVITY_26, IOLink.ImageView outputImage = null );
Class Syntax
Parameters
Class Name | Delineate3d |
---|
Parameter Name | Description | Type | Supported Values | Default Value | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
inputImage |
The input image. | Image | Binary, Label, Grayscale or Multispectral | nullptr | |||||||
kernelRadius |
The half size of the cube structuring element. A structuring element always has an odd side length (3x3x3, 5x5x5, etc.) which is defined by twice the kernel radius + 1. | Int32 | >=1 | 3 | |||||||
neighborhood |
The 3D neighborhood configuration. This parameter is ignored with a 2D input image.
|
Enumeration | CONNECTIVITY_26 | ||||||||
outputImage |
The output image. Its dimensions and type are forced to the same values as the input. | Image | nullptr |
Object Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); Delineate3d delineate3dAlgo; delineate3dAlgo.setInputImage( foam ); delineate3dAlgo.setKernelRadius( 3 ); delineate3dAlgo.setNeighborhood( Delineate3d::Neighborhood::CONNECTIVITY_26 ); delineate3dAlgo.execute(); std::cout << "outputImage:" << delineate3dAlgo.outputImage()->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) delineate_3d_algo = imagedev.Delineate3d() delineate_3d_algo.input_image = foam delineate_3d_algo.kernel_radius = 3 delineate_3d_algo.neighborhood = imagedev.Delineate3d.CONNECTIVITY_26 delineate_3d_algo.execute() print( "output_image:", str( delineate_3d_algo.output_image ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); Delineate3d delineate3dAlgo = new Delineate3d { inputImage = foam, kernelRadius = 3, neighborhood = Delineate3d.Neighborhood.CONNECTIVITY_26 }; delineate3dAlgo.Execute(); Console.WriteLine( "outputImage:" + delineate3dAlgo.outputImage.ToString() );
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto result = delineate3d( foam, 3, Delineate3d::Neighborhood::CONNECTIVITY_26 ); std::cout << "outputImage:" << result->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) result = imagedev.delineate_3d( foam, 3, imagedev.Delineate3d.CONNECTIVITY_26 ) print( "output_image:", str( result ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); IOLink.ImageView result = Processing.Delineate3d( foam, 3, Delineate3d.Neighborhood.CONNECTIVITY_26 ); Console.WriteLine( "outputImage:" + result.ToString() );