GradientMagnitude2d
Provides different algorithms to perform an edge detection based on the first derivative of a two-dimensional image.
Access to parameter description
For an introduction:
The following algorithms are proposed to extract the edges of an image:
See also
Access to parameter description
For an introduction:
- section Edge Detection
- section Gradient
- section Images Filters
The following algorithms are proposed to extract the edges of an image:
- Gaussian: It performs a convolution with the derivatives of a Gaussian function along each image axis.
- Sobel: It performs a convolution with the normalized Sobel Kernel: Gx=18[−101−202−101]andGy=18[−1−2−1000121]
- Prewitt: It performs a convolution with the normalized Prewitt Kernel: Gx=16[−101−101−101]andGy=16[−1−1−1000111]
See also
Function Syntax
This function returns outputImage.
// Function prototype
std::shared_ptr< iolink::ImageView > gradientMagnitude2d( std::shared_ptr< iolink::ImageView > inputImage, GradientMagnitude2d::GradientOperator gradientOperator, iolink::Vector2d standardDeviation, GradientMagnitude2d::FilterMode filterMode, GradientMagnitude2d::OutputType outputType, GradientMagnitude2d::GradientMode gradientMode, std::shared_ptr< iolink::ImageView > outputImage = NULL );
Class Syntax
Parameters
Parameter Name | Description | Type | Supported Values | Default Value | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
inputImage |
The input image. | Image | Binary, Label, Grayscale or Multispectral | nullptr | ||||||
![]() |
gradientOperator |
The gradient operator to apply.
|
Enumeration | GAUSSIAN | |||||||
![]() |
standardDeviation |
The standard deviation of the gaussian operator defines the gradient sharpness. Low values provide sharp gradient.
This parameter is ignored with the Sobel and Prewitt gradient operators. |
Vector2d | >=0.1 | {1.f, 1.f} | ||||||
![]() |
filterMode |
The gradient operator to apply.
|
Enumeration | RECURSIVE | |||||||
![]() |
outputType |
The output image type to provide.
|
Enumeration | SAME_AS_INPUT | |||||||
![]() |
gradientMode |
The output image to compute.
|
Enumeration | AMPLITUDE_EUCLIDEAN | |||||||
![]() |
outputImage |
The gradient amplitude output image.
Dimensions, calibration, and interpretation of the output image are forced to the same values as the input. |
Image | nullptr |
Object Examples
std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" ); GradientMagnitude2d gradientMagnitude2dAlgo; gradientMagnitude2dAlgo.setInputImage( polystyrene ); gradientMagnitude2dAlgo.setGradientOperator( GradientMagnitude2d::GradientOperator::GAUSSIAN ); gradientMagnitude2dAlgo.setStandardDeviation( {1, 1} ); gradientMagnitude2dAlgo.setFilterMode( GradientMagnitude2d::FilterMode::RECURSIVE ); gradientMagnitude2dAlgo.setOutputType( GradientMagnitude2d::OutputType::SAME_AS_INPUT ); gradientMagnitude2dAlgo.setGradientMode( GradientMagnitude2d::GradientMode::AMPLITUDE_EUCLIDEAN ); gradientMagnitude2dAlgo.execute(); std::cout << "outputImage:" << gradientMagnitude2dAlgo.outputImage()->toString();
Function Examples
std::shared_ptr< iolink::ImageView > polystyrene = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene.tif" ); auto result = gradientMagnitude2d( polystyrene, GradientMagnitude2d::GradientOperator::GAUSSIAN, {1, 1}, GradientMagnitude2d::FilterMode::RECURSIVE, GradientMagnitude2d::OutputType::SAME_AS_INPUT, GradientMagnitude2d::GradientMode::AMPLITUDE_EUCLIDEAN ); std::cout << "outputImage:" << result->toString();