GradientMagnitude3d
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:
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:
- Prewitt: It performs a convolution with the normalized Prewitt Kernel:
See also
Function Syntax
This function returns outputImage.
// Function prototype
std::shared_ptr< iolink::ImageView > gradientMagnitude3d( std::shared_ptr< iolink::ImageView > inputImage, GradientMagnitude3d::GradientOperator gradientOperator, iolink::Vector3d standardDeviation, GradientMagnitude3d::FilterMode filterMode, GradientMagnitude3d::OutputType outputType, GradientMagnitude3d::GradientMode gradientMode, std::shared_ptr< iolink::ImageView > outputImage = NULL );
This function returns outputImage.
// Function prototype. gradient_magnitude_3d( input_image, gradient_operator = GradientMagnitude3d.GradientOperator.GAUSSIAN, standard_deviation = [1, 1, 1], filter_mode = GradientMagnitude3d.FilterMode.RECURSIVE, output_type = GradientMagnitude3d.OutputType.SAME_AS_INPUT, gradient_mode = GradientMagnitude3d.GradientMode.AMPLITUDE_EUCLIDEAN, output_image = None )
This function returns outputImage.
// Function prototype. public static IOLink.ImageView GradientMagnitude3d( IOLink.ImageView inputImage, GradientMagnitude3d.GradientOperator gradientOperator = ImageDev.GradientMagnitude3d.GradientOperator.GAUSSIAN, double[] standardDeviation = null, GradientMagnitude3d.FilterMode filterMode = ImageDev.GradientMagnitude3d.FilterMode.RECURSIVE, GradientMagnitude3d.OutputType outputType = ImageDev.GradientMagnitude3d.OutputType.SAME_AS_INPUT, GradientMagnitude3d.GradientMode gradientMode = ImageDev.GradientMagnitude3d.GradientMode.AMPLITUDE_EUCLIDEAN, IOLink.ImageView outputImage = null );
Class Syntax
Parameters
Class Name | GradientMagnitude3d |
---|
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. |
Vector3d | >=0.1 | {1.f, 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
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); GradientMagnitude3d gradientMagnitude3dAlgo; gradientMagnitude3dAlgo.setInputImage( foam ); gradientMagnitude3dAlgo.setGradientOperator( GradientMagnitude3d::GradientOperator::GAUSSIAN ); gradientMagnitude3dAlgo.setStandardDeviation( {1, 1, 1} ); gradientMagnitude3dAlgo.setFilterMode( GradientMagnitude3d::FilterMode::RECURSIVE ); gradientMagnitude3dAlgo.setOutputType( GradientMagnitude3d::OutputType::SAME_AS_INPUT ); gradientMagnitude3dAlgo.setGradientMode( GradientMagnitude3d::GradientMode::AMPLITUDE_EUCLIDEAN ); gradientMagnitude3dAlgo.execute(); std::cout << "outputImage:" << gradientMagnitude3dAlgo.outputImage()->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) gradient_magnitude_3d_algo = imagedev.GradientMagnitude3d() gradient_magnitude_3d_algo.input_image = foam gradient_magnitude_3d_algo.gradient_operator = imagedev.GradientMagnitude3d.GAUSSIAN gradient_magnitude_3d_algo.standard_deviation = [1, 1, 1] gradient_magnitude_3d_algo.filter_mode = imagedev.GradientMagnitude3d.RECURSIVE gradient_magnitude_3d_algo.output_type = imagedev.GradientMagnitude3d.SAME_AS_INPUT gradient_magnitude_3d_algo.gradient_mode = imagedev.GradientMagnitude3d.AMPLITUDE_EUCLIDEAN gradient_magnitude_3d_algo.execute() print( "output_image:", str( gradient_magnitude_3d_algo.output_image ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); GradientMagnitude3d gradientMagnitude3dAlgo = new GradientMagnitude3d { inputImage = foam, gradientOperator = GradientMagnitude3d.GradientOperator.GAUSSIAN, standardDeviation = new double[]{1, 1, 1}, filterMode = GradientMagnitude3d.FilterMode.RECURSIVE, outputType = GradientMagnitude3d.OutputType.SAME_AS_INPUT, gradientMode = GradientMagnitude3d.GradientMode.AMPLITUDE_EUCLIDEAN }; gradientMagnitude3dAlgo.Execute(); Console.WriteLine( "outputImage:" + gradientMagnitude3dAlgo.outputImage.ToString() );
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto result = gradientMagnitude3d( foam, GradientMagnitude3d::GradientOperator::GAUSSIAN, {1, 1, 1}, GradientMagnitude3d::FilterMode::RECURSIVE, GradientMagnitude3d::OutputType::SAME_AS_INPUT, GradientMagnitude3d::GradientMode::AMPLITUDE_EUCLIDEAN ); std::cout << "outputImage:" << result->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) result = imagedev.gradient_magnitude_3d( foam, imagedev.GradientMagnitude3d.GAUSSIAN, [1, 1, 1], imagedev.GradientMagnitude3d.RECURSIVE, imagedev.GradientMagnitude3d.SAME_AS_INPUT, imagedev.GradientMagnitude3d.AMPLITUDE_EUCLIDEAN ) print( "output_image:", str( result ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); IOLink.ImageView result = Processing.GradientMagnitude3d( foam, GradientMagnitude3d.GradientOperator.GAUSSIAN, new double[]{1, 1, 1}, GradientMagnitude3d.FilterMode.RECURSIVE, GradientMagnitude3d.OutputType.SAME_AS_INPUT, GradientMagnitude3d.GradientMode.AMPLITUDE_EUCLIDEAN ); Console.WriteLine( "outputImage:" + result.ToString() );