Main Content

maxhessiannorm

Maximum of Frobenius norm of Hessian of matrix

Description

C = maxhessiannorm(I) returns the maximum of Frobenius norm of the Hessian of grayscale image I.

example

C = maxhessiannorm(I,thickness) also specifies the thickness of tubular structures.

Examples

collapse all

Read and display an image that contains tubular threads of varying thicknesses.

I = imread('threads.png');
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

Calculate the maximum of the Frobenius norm of the Hessian of the image, with tubular thickness set to seven pixels.

C = maxhessiannorm(I,7);

Create an enhanced version of the image highlighting threads seven pixels thick. Use a structure sensitivity threshold equal to half of the maximum of the Frobenius norm of the Hessian. In the image, threads show up dark against a light background, so specify the object polarity as 'dark'. Display the enhanced image.

J = fibermetric(I,7,'ObjectPolarity','dark','StructureSensitivity',0.5*C); 
imshow(J)
title('Enhanced Tubular Structures 7 Pixels Thick')

Figure contains an axes object. The axes object with title Enhanced Tubular Structures 7 Pixels Thick contains an object of type image.

Threshold the enhanced image to create a binary mask containing only the threads with the specified thickness.

BW = imbinarize(J);

Display the mask over the original image using the labeloverlay function. The overlay has a blue tint where the mask is true, meaning those threads have the specified thickness.

maskl = labeloverlay(I,BW);
imshow(maskl)
title('Detected Tubular Structures 7 Pixels Thick')

Figure contains an axes object. The axes object with title Detected Tubular Structures 7 Pixels Thick contains an object of type image.

Input Arguments

collapse all

Image with elongated or tubular structures, specified as 2-D grayscale image.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Thickness of tubular structures in pixels, specified as a positive integer.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Output Arguments

collapse all

Maximum of the Frobenius norm of the Hessian of grayscale image I, returned as a numeric scalar.

Data Types: double

Tips

  • maxhessiannorm is a helper function to fibermetric, which changed default behavior in R2018b. If you want to reproduce the prior default behavior, then specify StructureSensitivity as 0.5*maxhessiannorm(I).

References

[1] Frangi, Alejandro F., et al. Multiscale vessel enhancement filtering. Medical Image Computing and Computer-Assisted Intervention — MICCAI'98. Springer Berlin Heidelberg, 1998. pp. 130–137.

Version History

Introduced in R2018b