This algorithm allows extracting tubular or blob-like structures from dark or bright background.
The computation is based on eigenvalues λ1 and λ2
where ∣λ1∣≥∣λ2∣.
The structure score for bright tubular structures corresponds to:
score={0if λ1>0, exp(−(λ2λ1)22β2)(1−exp(−S22c2))
The score for bright blob-like structures is computed as follows:
score={0if λ1>0 or λ2>0, (1−exp(−(λ2λ1)22β2))(1−exp(−S22c2))
Where:
S is the Hessian norm S=√λ21λ22
β is a threshold which controls the blobness sensitivity,
c is a sensitivity threshold wich controls the noise influence.
c=noiseCutoff⋅Smax with Smax the maximum Hessian norm in the image.
For dark objects the conditions on λ1 and λ2 are reversed.
This algorithm outputs a float grayscale image where each pixel intensity represents a
structure score between 0 and 1.
The method for tubular structures is referenced by Alejandro Frangi publication:
A.F.Frangi, W.J.Niessen, K.L.Vincken, M.A.Viergever. "Multiscale vessel enhancement filtering".
Lecture Notes in Computer Science(MICCAI), vol. 1496, pp. 130-137, 1998.
// Command constructor.EigenvaluesToStructureness2d();/// Gets the inputEigenvaluesImage parameter./// The input image containing the eigenvalues field. Type must be float. Spectral series size is 2 (channel 0 = largest eigenvalue, channel 1 = smallest eigenvalue).
std::shared_ptr< iolink::ImageView> inputEigenvaluesImage()const;/// Sets the inputEigenvaluesImage parameter./// The input image containing the eigenvalues field. Type must be float. Spectral series size is 2 (channel 0 = largest eigenvalue, channel 1 = smallest eigenvalue).void setInputEigenvaluesImage( std::shared_ptr< iolink::ImageView> inputEigenvaluesImage );/// Gets the lightness parameter./// The type of structure lightness to extract.EigenvaluesToStructureness2d::Lightness lightness()const;/// Sets the lightness parameter./// The type of structure lightness to extract.void setLightness(constEigenvaluesToStructureness2d::Lightness& lightness );/// Gets the structureType parameter./// The type of structure shapes to extract.EigenvaluesToStructureness2d::StructureType structureType()const;/// Sets the structureType parameter./// The type of structure shapes to extract.void setStructureType(constEigenvaluesToStructureness2d::StructureType& structureType );/// Gets the beta parameter./// The blobness sensitivity threshold. It corresponds to the beta term of the score equation.double beta()const;/// Sets the beta parameter./// The blobness sensitivity threshold. It corresponds to the beta term of the score equation.void setBeta(constdouble& beta );/// Gets the noiseCutoff parameter./// The noise scale factor. It is used for computing the c term of the score equation.double noiseCutoff()const;/// Sets the noiseCutoff parameter./// The noise scale factor. It is used for computing the c term of the score equation.void setNoiseCutoff(constdouble& noiseCutoff );/// Gets the outputImage parameter./// The score output image. X and Y dimensions, calibration and interpretation of the output image are forced to the same values as the input. The spectral dimension is forced to 1. Type is forced to float and all values are between 0 and 1.
std::shared_ptr< iolink::ImageView> outputImage()const;/// Sets the outputImage parameter./// The score output image. X and Y dimensions, calibration and interpretation of the output image are forced to the same values as the input. The spectral dimension is forced to 1. Type is forced to float and all values are between 0 and 1.void setOutputImage( std::shared_ptr< iolink::ImageView> outputImage );// Method to launch the command.void execute();
# Property of the inputEigenvaluesImage parameter.EigenvaluesToStructureness2d.input_eigenvalues_image
# Property of the lightness parameter.EigenvaluesToStructureness2d.lightness
# Property of the structureType parameter.EigenvaluesToStructureness2d.structure_type
# Property of the beta parameter.EigenvaluesToStructureness2d.beta
# Property of the noiseCutoff parameter.EigenvaluesToStructureness2d.noise_cutoff
# Property of the outputImage parameter.EigenvaluesToStructureness2d.output_image
// Method to launch the command.
execute()
// Command constructor.EigenvaluesToStructureness2d()// Property of the inputEigenvaluesImage parameter.EigenvaluesToStructureness2d.inputEigenvaluesImage
// Property of the lightness parameter.EigenvaluesToStructureness2d.lightness
// Property of the structureType parameter.EigenvaluesToStructureness2d.structureType
// Property of the beta parameter.EigenvaluesToStructureness2d.beta
// Property of the noiseCutoff parameter.EigenvaluesToStructureness2d.noiseCutoff
// Property of the outputImage parameter.EigenvaluesToStructureness2d.outputImage
// Method to launch the command.Execute()
Parameters
Parameter Name
Description
Type
Supported Values
Default Value
inputEigenvaluesImage
The input image containing the eigenvalues field. Type must be float. Spectral series size is 2 (channel 0 = largest eigenvalue, channel 1 = smallest eigenvalue).
Image
Multispectral
nullptr
lightness
The type of structure lightness to extract.
BRIGHT
Extracts bright structures from dark background.
DARK
Extracts dark structures from bright background.
Enumeration
BRIGHT
structureType
The type of structure shapes to extract.
ROD
Extracts rod-like (tubular) structures.
BALL
Extracts blob-like (spherical) structures.
Enumeration
ROD
beta
The blobness sensitivity threshold. It corresponds to the beta term of the score equation.
Float64
>0
0.75
noiseCutoff
The noise scale factor. It is used for computing the c term of the score equation.
Float64
>0
0.5
outputImage
The score output image. X and Y dimensions, calibration and interpretation of the output image are forced to the same values as the input. The spectral dimension is forced to 1. Type is forced to float and all values are between 0 and 1.
Image
nullptr
Parameter Name
Description
Type
Supported Values
Default Value
input_eigenvalues_image
The input image containing the eigenvalues field. Type must be float. Spectral series size is 2 (channel 0 = largest eigenvalue, channel 1 = smallest eigenvalue).
image
Multispectral
None
lightness
The type of structure lightness to extract.
BRIGHT
Extracts bright structures from dark background.
DARK
Extracts dark structures from bright background.
enumeration
BRIGHT
structure_type
The type of structure shapes to extract.
ROD
Extracts rod-like (tubular) structures.
BALL
Extracts blob-like (spherical) structures.
enumeration
ROD
beta
The blobness sensitivity threshold. It corresponds to the beta term of the score equation.
float64
>0
0.75
noise_cutoff
The noise scale factor. It is used for computing the c term of the score equation.
float64
>0
0.5
output_image
The score output image. X and Y dimensions, calibration and interpretation of the output image are forced to the same values as the input. The spectral dimension is forced to 1. Type is forced to float and all values are between 0 and 1.
image
None
Parameter Name
Description
Type
Supported Values
Default Value
inputEigenvaluesImage
The input image containing the eigenvalues field. Type must be float. Spectral series size is 2 (channel 0 = largest eigenvalue, channel 1 = smallest eigenvalue).
Image
Multispectral
null
lightness
The type of structure lightness to extract.
BRIGHT
Extracts bright structures from dark background.
DARK
Extracts dark structures from bright background.
Enumeration
BRIGHT
structureType
The type of structure shapes to extract.
ROD
Extracts rod-like (tubular) structures.
BALL
Extracts blob-like (spherical) structures.
Enumeration
ROD
beta
The blobness sensitivity threshold. It corresponds to the beta term of the score equation.
Float64
>0
0.75
noiseCutoff
The noise scale factor. It is used for computing the c term of the score equation.
Float64
>0
0.5
outputImage
The score output image. X and Y dimensions, calibration and interpretation of the output image are forced to the same values as the input. The spectral dimension is forced to 1. Type is forced to float and all values are between 0 and 1.