GaussianHessianMatrix3d
Computes a pointwise Hessian matrix on a three-dimensional image.
Access to parameter description
This algorithm computes the local Hessian matrix $\begin{pmatrix} I_{xx} & I_{xy}& I_{xz}\\ I_{xy} & I_{yy}& I_{yz}\\ I_{xz} & I_{yz}& I_{zz} \end{pmatrix}$ by convolving the input image with the second order derivatives of a Gaussian kernel.
Each element of the Hessian matrix represents a second order partial derivative.
For instance, $I_{xx}=\frac{\partial^2 I}{\partial x^2}$, $I_{xy}=\frac{\partial^2 I} {\partial x \partial y}$.
The matrix elements are computed as explained in the GaussianDerivative3d documentation.
This filter provides a spectral image output where each channel represents a matrix element; for instance, a second order derivative set in the following order: $I_{xx}$, $I_{xy}$, $I_{xz}$, $I_{yy}$, $I_{yz}$, $I_{zz}$.
To extract the eigenvalues or vectors of the Hessian image the EigenDecomposition2d can be applied on this output image.
See also
Access to parameter description
This algorithm computes the local Hessian matrix $\begin{pmatrix} I_{xx} & I_{xy}& I_{xz}\\ I_{xy} & I_{yy}& I_{yz}\\ I_{xz} & I_{yz}& I_{zz} \end{pmatrix}$ by convolving the input image with the second order derivatives of a Gaussian kernel.
Each element of the Hessian matrix represents a second order partial derivative.
For instance, $I_{xx}=\frac{\partial^2 I}{\partial x^2}$, $I_{xy}=\frac{\partial^2 I} {\partial x \partial y}$.
The matrix elements are computed as explained in the GaussianDerivative3d documentation.
This filter provides a spectral image output where each channel represents a matrix element; for instance, a second order derivative set in the following order: $I_{xx}$, $I_{xy}$, $I_{xz}$, $I_{yy}$, $I_{yz}$, $I_{zz}$.
To extract the eigenvalues or vectors of the Hessian image the EigenDecomposition2d can be applied on this output image.
See also
Function Syntax
This function returns outputTensorImage.
// Function prototype
std::shared_ptr< iolink::ImageView > gaussianHessianMatrix3d( std::shared_ptr< iolink::ImageView > inputImage, iolink::Vector3d standardDeviation, std::shared_ptr< iolink::ImageView > outputTensorImage = NULL );
This function returns outputTensorImage.
// Function prototype. gaussian_hessian_matrix_3d( input_image, standard_deviation = [1, 1, 1], output_tensor_image = None )
This function returns outputTensorImage.
// Function prototype. public static IOLink.ImageView GaussianHessianMatrix3d( IOLink.ImageView inputImage, double[] standardDeviation = null, IOLink.ImageView outputTensorImage = null );
Class Syntax
Parameters
Class Name | GaussianHessianMatrix3d |
---|
Parameter Name | Description | Type | Supported Values | Default Value | |
---|---|---|---|---|---|
inputImage |
The input image. | Image | Binary, Label or Grayscale | nullptr | |
standardDeviation |
The sigma value of the Gaussian filter for each direction X, Y, and Z. Each value must be greater than or equal to 0.1. | Vector3d | >=0.1 | {1.f, 1.f, 1.f} | |
outputTensorImage |
The output image. Its spatial dimensions, calibration and interpretation are forced to the same values as the input image. Its type is forced to float. | Image | nullptr |
Object Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); GaussianHessianMatrix3d gaussianHessianMatrix3dAlgo; gaussianHessianMatrix3dAlgo.setInputImage( foam ); gaussianHessianMatrix3dAlgo.setStandardDeviation( {1.0, 1.0, 1.0} ); gaussianHessianMatrix3dAlgo.execute(); std::cout << "outputTensorImage:" << gaussianHessianMatrix3dAlgo.outputTensorImage()->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) gaussian_hessian_matrix_3d_algo = imagedev.GaussianHessianMatrix3d() gaussian_hessian_matrix_3d_algo.input_image = foam gaussian_hessian_matrix_3d_algo.standard_deviation = [1.0, 1.0, 1.0] gaussian_hessian_matrix_3d_algo.execute() print( "output_tensor_image:", str( gaussian_hessian_matrix_3d_algo.output_tensor_image ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); GaussianHessianMatrix3d gaussianHessianMatrix3dAlgo = new GaussianHessianMatrix3d { inputImage = foam, standardDeviation = new double[]{1.0, 1.0, 1.0} }; gaussianHessianMatrix3dAlgo.Execute(); Console.WriteLine( "outputTensorImage:" + gaussianHessianMatrix3dAlgo.outputTensorImage.ToString() );
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto result = gaussianHessianMatrix3d( foam, {1.0, 1.0, 1.0} ); std::cout << "outputTensorImage:" << result->toString();
foam = imagedev.read_vip_image(imagedev_data.get_image_path("foam.vip")) result = imagedev.gaussian_hessian_matrix_3d( foam, [1.0, 1.0, 1.0] ) print( "output_tensor_image:", str( result ) )
ImageView foam = Data.ReadVipImage( @"Data/images/foam.vip" ); IOLink.ImageView result = Processing.GaussianHessianMatrix3d( foam, new double[]{1.0, 1.0, 1.0} ); Console.WriteLine( "outputTensorImage:" + result.ToString() );