Processing math: 100%
ImageDev

RadialGradientContour2d

Performs a two-dimensional gradient projection with a directional vector defined by a set of contour points of a binary image.

Access to parameter description

For an introduction: The RadialGradientContour2d algorithm performs a gradient projection by computing the directional vector from the contour of objects. For a pixel P in the image, the center C taken into account is the closest pixel contour of the closest object.

Notices: See also

Function Syntax

This function returns a RadialGradientContour2dOutput structure containing outputNormalImage and outputTangentImage.
// Output structure of the radialGradientContour2d function.
struct RadialGradientContour2dOutput
{
    /// The normal gradient output image.
    std::shared_ptr< iolink::ImageView > outputNormalImage;
    /// The tangent gradient output image.
    std::shared_ptr< iolink::ImageView > outputTangentImage;
};

// Function prototype
RadialGradientContour2dOutput radialGradientContour2d( std::shared_ptr< iolink::ImageView > inputImageX, std::shared_ptr< iolink::ImageView > inputImageY, std::shared_ptr< iolink::ImageView > inputMarkerImage, RadialGradientContour2d::ProjectionMode projectionMode, std::shared_ptr< iolink::ImageView > outputNormalImage = NULL, std::shared_ptr< iolink::ImageView > outputTangentImage = NULL );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
inputImageX
The X-gradient input image. Image Grayscale nullptr
input
inputImageY
The Y-gradient input image. Image Grayscale nullptr
input
inputMarkerImage
The marker input image from which the binary contours are considered as centers. Image Binary nullptr
input
projectionMode
The output images to be computed.
GRADIENT_NORMAL The engine computes the normal gradient. Only the outputNormalImage output is set using this mode.
GRADIENT_NORMAL_TANGENTIAL The engine computes the normal and tangential gradients. Both outputNormalImage and outputTangentImage outputs are set using this mode.
Enumeration GRADIENT_NORMAL
output
outputNormalImage
The normal gradient output image. Image nullptr
output
outputTangentImage
The tangent gradient output image. Image nullptr

Object Examples

std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" );
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" );

RadialGradientContour2d radialGradientContour2dAlgo;
radialGradientContour2dAlgo.setInputImageX( polystyrene );
radialGradientContour2dAlgo.setInputImageY( polystyrene );
radialGradientContour2dAlgo.setInputMarkerImage( polystyrene_sep );
radialGradientContour2dAlgo.setProjectionMode( RadialGradientContour2d::ProjectionMode::GRADIENT_NORMAL );
radialGradientContour2dAlgo.execute();

std::cout << "outputNormalImage:" << radialGradientContour2dAlgo.outputNormalImage()->toString();
std::cout << "outputTangentImage:" << radialGradientContour2dAlgo.outputTangentImage()->toString();

Function Examples

std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" );
auto polystyrene_sep = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_sep.vip" );

auto result = radialGradientContour2d( polystyrene, polystyrene, polystyrene_sep, RadialGradientContour2d::ProjectionMode::GRADIENT_NORMAL );

std::cout << "outputNormalImage:" << result.outputNormalImage->toString();
std::cout << "outputTangentImage:" << result.outputTangentImage->toString();