ImageDev

TriplePoints2d

Point detector selecting triple points of a skeleton in a two-dimensional binary image.

Access to parameter description

For an introduction: The triple point of the skeleton are found by performing an HMT with the following configurations and their associated rotations:
$$ \begin{array}{ccc} \times & 1 & \times\\ \times & 1 & \times\\ 1 & \times & 1 \end{array} ~~~~~~~ \begin{array}{ccc} 1 & \times & \times\\ \times & 1 & \times\\ 1 & \times & 1 \end{array} $$
Segmentation of particles:
In the following figure, it is possible to differentiate particles by counting their number of triple points (in black) and their number of extremities (in gray).

<b> Figure 1.</b> Skeleton, end points, and triple points
Figure 1. Skeleton, end points, and triple points


See also

Function Syntax

This function returns the outputBinaryImage output parameter.
// Function prototype.
std::shared_ptr< iolink::ImageView >
triplePoints2d( std::shared_ptr< iolink::ImageView > inputBinaryImage, std::shared_ptr< iolink::ImageView > outputBinaryImage = NULL );
This function returns the outputBinaryImage output parameter.
// Function prototype.
triple_points_2d( input_binary_image, output_binary_image = None )
This function returns the outputBinaryImage output parameter.
// Function prototype.
public static IOLink.ImageView
TriplePoints2d( IOLink.ImageView inputBinaryImage, IOLink.ImageView outputBinaryImage = null );

Class Syntax

Parameters

Class Name TriplePoints2d

Parameter Name Description Type Supported Values Default Value
input
inputBinaryImage
The binary input image. Image Binary nullptr
output
outputBinaryImage
The binary output image. Its size and type are forced to the same values as the input. Image nullptr

Object Examples

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

TriplePoints2d triplePoints2dAlgo;
triplePoints2dAlgo.setInputBinaryImage( polystyrene_sep );
triplePoints2dAlgo.execute();

std::cout << "outputBinaryImage:" << triplePoints2dAlgo.outputBinaryImage()->toString();
polystyrene_sep = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_sep.vip"))

triple_points_2d_algo = imagedev.TriplePoints2d()
triple_points_2d_algo.input_binary_image = polystyrene_sep
triple_points_2d_algo.execute()

print( "output_binary_image:", str( triple_points_2d_algo.output_binary_image ) )
ImageView polystyrene_sep = Data.ReadVipImage( @"Data/images/polystyrene_sep.vip" );

TriplePoints2d triplePoints2dAlgo = new TriplePoints2d
{
    inputBinaryImage = polystyrene_sep
};
triplePoints2dAlgo.Execute();

Console.WriteLine( "outputBinaryImage:" + triplePoints2dAlgo.outputBinaryImage.ToString() );

Function Examples

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

auto result = triplePoints2d( polystyrene_sep );

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

result = imagedev.triple_points_2d( polystyrene_sep )

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

IOLink.ImageView result = Processing.TriplePoints2d( polystyrene_sep );

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