ImageDev

FillImageBorder3d

Fills holes of border faces of a three-dimensional binary image.

Access to parameter description

For an introduction: This algorithm applies FillHoles2d on the six exterior faces of the 3D input binary image.
It aims at closing 3D shapes connected to the borders of a 3D image (for instance, in order to perform a 3D hole filling operation afterward).

See also

Function Syntax

This function returns the outputObjectImage output parameter.
// Function prototype.
std::shared_ptr< iolink::ImageView >
fillImageBorder3d( std::shared_ptr< iolink::ImageView > inputObjectImage,
                   FillImageBorder3d::Neighborhood neighborhood,
                   std::shared_ptr< iolink::ImageView > outputObjectImage = NULL );
This function returns the outputObjectImage output parameter.
// Function prototype.
fill_image_border_3d( input_object_image, neighborhood = FillImageBorder3d.Neighborhood.CONNECTIVITY_8, output_object_image = None )
This function returns the outputObjectImage output parameter.
// Function prototype.
public static IOLink.ImageView
FillImageBorder3d( IOLink.ImageView inputObjectImage,
                   FillImageBorder3d.Neighborhood neighborhood = ImageDev.FillImageBorder3d.Neighborhood.CONNECTIVITY_8,
                   IOLink.ImageView outputObjectImage = null );

Class Syntax

Parameters

Class Name FillImageBorder3d

Parameter Name Description Type Supported Values Default Value
input
inputObjectImage
The 3D binary input image. Image Binary nullptr
input
neighborhood
The 2D neighborhood configuration for performing numerical reconstruction.
CONNECTIVITY_8 Morphological reconstruction is performed with a 8-neighbor connectivity.
CONNECTIVITY_4 Morphological reconstruction is performed with a 4-neighbor connectivity.
Enumeration CONNECTIVITY_8
output
outputObjectImage
The output binary image. Its dimensions are forced to the same values as the input image. Image nullptr

Object Examples

auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" );

FillImageBorder3d fillImageBorder3dAlgo;
fillImageBorder3dAlgo.setInputObjectImage( foam_sep );
fillImageBorder3dAlgo.setNeighborhood( FillImageBorder3d::Neighborhood::CONNECTIVITY_8 );
fillImageBorder3dAlgo.execute();

std::cout << "outputObjectImage:" << fillImageBorder3dAlgo.outputObjectImage()->toString();
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip"))

fill_image_border_3d_algo = imagedev.FillImageBorder3d()
fill_image_border_3d_algo.input_object_image = foam_sep
fill_image_border_3d_algo.neighborhood = imagedev.FillImageBorder3d.CONNECTIVITY_8
fill_image_border_3d_algo.execute()

print( "output_object_image:", str( fill_image_border_3d_algo.output_object_image ) )
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" );

FillImageBorder3d fillImageBorder3dAlgo = new FillImageBorder3d
{
    inputObjectImage = foam_sep,
    neighborhood = FillImageBorder3d.Neighborhood.CONNECTIVITY_8
};
fillImageBorder3dAlgo.Execute();

Console.WriteLine( "outputObjectImage:" + fillImageBorder3dAlgo.outputObjectImage.ToString() );

Function Examples

auto foam_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep.vip" );

auto result = fillImageBorder3d( foam_sep, FillImageBorder3d::Neighborhood::CONNECTIVITY_8 );

std::cout << "outputObjectImage:" << result->toString();
foam_sep = imagedev.read_vip_image(imagedev_data.get_image_path("foam_sep.vip"))

result = imagedev.fill_image_border_3d( foam_sep, imagedev.FillImageBorder3d.CONNECTIVITY_8 )

print( "output_object_image:", str( result ) )
ImageView foam_sep = Data.ReadVipImage( @"Data/images/foam_sep.vip" );

IOLink.ImageView result = Processing.FillImageBorder3d( foam_sep, FillImageBorder3d.Neighborhood.CONNECTIVITY_8 );

Console.WriteLine( "outputObjectImage:" + result.ToString() );