This algorithm allows extracting tubular, blob-like, and plate-like structures from dark or bright background.
The computation is based on eigenvalues λ1, λ2 and λ3 where
∣λ1∣≥∣λ2∣≥∣λ3∣.
The structure score for bright tubular structures corresponds to:
score={0 if λ1>0 or λ2>0(1−exp(−R2a2α2))exp(−R2b2β2)(1−exp(−S22c2))
The score for bright blob-like structures is computed as follows:
score={0 if λ1>0 or λ2>0 or λ3>0(1−exp(−R2a2α2))(1−exp(−R2b2β2))(1−exp(−S22c2))
The score for bright plate-like structures is computed as follows:
score={0 if λ1>0exp(−R2a2α2)exp(−R2b2β2)(1−exp(−S22c2))
Where:
S is the Hessian norm S=‖
\alpha is a threshold which controls the flatness sensitivity,
\beta is a threshold which controls the blobness sensitivity,
c is a sensitivity threshold which controls the noise influence.
c = noiseCutoff \cdot S_{max} with S_{max} the maximum Hessian norm in the image.
For dark objects the conditions on \lambda_{1}, \lambda_{2} and \lambda_{3} 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.EigenvaluesToStructureness3d();/// Gets the inputEigenvaluesImage parameter./// The input image containing the eigenvalues field. Type must be float. Spectral series size is 3 (channel 0 = largest eigenvalue, channel 1 = medium eigen value, channel 2 = 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 3 (channel 0 = largest eigenvalue, channel 1 = medium eigen value, channel 2 = smallest eigenvalue).void setInputEigenvaluesImage( std::shared_ptr< iolink::ImageView> inputEigenvaluesImage );/// Gets the lightness parameter./// The type of structure lightness to extract.EigenvaluesToStructureness3d::Lightness lightness()const;/// Sets the lightness parameter./// The type of structure lightness to extract.void setLightness(constEigenvaluesToStructureness3d::Lightness& lightness );/// Gets the structureType parameter./// The type of structure shapes to extract.EigenvaluesToStructureness3d::StructureType structureType()const;/// Sets the structureType parameter./// The type of structure shapes to extract.void setStructureType(constEigenvaluesToStructureness3d::StructureType& structureType );/// Gets the alpha parameter./// The flatness sensitivity threshold. It corresponds to the alpha term of the score equation.double alpha()const;/// Sets the alpha parameter./// The flatness sensitivity threshold. It corresponds to the alpha term of the score equation.void setAlpha(constdouble& alpha );/// 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, Y, and Z 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, Y, and Z 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.EigenvaluesToStructureness3d.input_eigenvalues_image
# Property of the lightness parameter.EigenvaluesToStructureness3d.lightness
# Property of the structureType parameter.EigenvaluesToStructureness3d.structure_type
# Property of the alpha parameter.EigenvaluesToStructureness3d.alpha
# Property of the beta parameter.EigenvaluesToStructureness3d.beta
# Property of the noiseCutoff parameter.EigenvaluesToStructureness3d.noise_cutoff
# Property of the outputImage parameter.EigenvaluesToStructureness3d.output_image
// Method to launch the command.
execute()
// Command constructor.EigenvaluesToStructureness3d()// Property of the inputEigenvaluesImage parameter.EigenvaluesToStructureness3d.inputEigenvaluesImage
// Property of the lightness parameter.EigenvaluesToStructureness3d.lightness
// Property of the structureType parameter.EigenvaluesToStructureness3d.structureType
// Property of the alpha parameter.EigenvaluesToStructureness3d.alpha
// Property of the beta parameter.EigenvaluesToStructureness3d.beta
// Property of the noiseCutoff parameter.EigenvaluesToStructureness3d.noiseCutoff
// Property of the outputImage parameter.EigenvaluesToStructureness3d.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 3 (channel 0 = largest eigenvalue, channel 1 = medium eigen value, channel 2 = 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.
PLANE
Extracts plate-like (planar) structures.
Enumeration
ROD
alpha
The flatness sensitivity threshold. It corresponds to the alpha term of the score equation.
Float64
>0
0.75
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, Y, and Z 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 3 (channel 0 = largest eigenvalue, channel 1 = medium eigen value, channel 2 = 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.
PLANE
Extracts plate-like (planar) structures.
enumeration
ROD
alpha
The flatness sensitivity threshold. It corresponds to the alpha term of the score equation.
float64
>0
0.75
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, Y, and Z 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 3 (channel 0 = largest eigenvalue, channel 1 = medium eigen value, channel 2 = 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.
PLANE
Extracts plate-like (planar) structures.
Enumeration
ROD
alpha
The flatness sensitivity threshold. It corresponds to the alpha term of the score equation.
Float64
>0
0.75
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, Y, and Z 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.