GaussHessian¶
-
MLModule
¶ genre Filters
author Ola Friman
package FMEstable/ReleaseMeVis
dll MLGaussFiltersStable
definition MLGaussFiltersStable.def see also itkHessianRecursiveGaussianImageFilter
,itkLaplacianRecursiveGaussianImageFilter
,Vesselness
,TensorToEigensystem
keywords Hessian
,Gaussian
,Laplacian
,gradient
,derivative
,edge
,structure
Purpose¶
The module GaussHessian
calculates the Laplacian or full Hessian matrix of a scalar 2D or 3D image.
Usage¶
Connect a scalar volume to input0
. An optional mask volume can be connected to input1
.
The scale is given by Gauss Sigma
of the Gaussian filter kernel that is applied as:
Details¶
The Hessian matrix is represented as a vec3 or vec6 for 2D and 3D data respectively.
The Hessian components are stored in the following order.
In 2D:
In 3D:
A separable filtering approach is used to calculate the gradient. 1D filter kernels are calculated by sampling the 1D Gaussian:
at the points
The filter kernel is subsequently scaled so that the kernel elements sum to 1. The derivative kernels are found as:
and
where voxelSize is the size of a voxel in millimeters. With this scaling, the Hessian components can be interpreted as:
or
depending on the unit chosen by the user.
The x-axis runs from left to right, the y-axis from top to bottom and z-axis into the screen. That is, the standard image coordinate system in MeVisLab is used.
Multi-scale normalization: In some applications it important to combine Hessian-based information over many spatial scales (many different sigmas). This can be done using several GaussHessian modules.
To get comparable values across scales, the option Apply scale normalization
should be used. The 1D derivative filters above are then multiplied with sigma (first derivative) or sigma2 (second derivative) to obtain the normalization described in T. Lindeberg: “Principles for Automatic Scale Selection”. For anisotropic voxel sizes, the filter in each of the directions x, y, z will get a different normalization factor.
Masking: When no mask is supplied, the Hessian components are calculated using a separable filtering approach. When a mask is supplied, a regular convolution with full 2D or 3D filters is applied because of the difficulties in applying a separable filtering to an irregular domain. Therefore, the use of a mask to avoid unnecessary computations is only recommended when the mask covers less than 50% of the voxels in the volume.
Input Fields¶
Parameter Fields¶
Field Index¶
2D calculation : Bool |
Update : Trigger |
Apply scale normalization : Bool |
|
Auto update : Bool |
|
Calculate laplacian : Bool |
|
Gauss Sigma : Double |
|
padding : Vector3 |
|
reportSigmaTooSmallAsWarning : Bool |
|
Sigma Unit : Enum |
Visible Fields¶
Sigma Unit¶
-
name:
unit
, type:
Enum
, default:
voxel
¶ Defines the used unit for sigma.
Values:
Title | Name |
---|---|
voxel | voxel |
mm | mm |
2D calculation¶
-
name:
calc2D
, type:
Bool
, default:
FALSE
¶ If checked, a slice-wise 2D calculation is forced, even if the input is a 3D image.
Calculate laplacian¶
-
name:
calcLaplacian
, type:
Bool
, default:
FALSE
¶ If checked, the Laplacian is calculated, i.e., the sum of the diagonal of the Hessian, instead of the full Hessian.
Apply scale normalization¶
-
name:
applyScaleNormalization
, type:
Bool
, default:
FALSE
¶ If checked, a scale normalization for multi-scale integration of Hessian-based information is applied.