File Exchange

## Efficient Implementation for Spherical Flux Computation (2D)

version 1.0 (4.02 KB) by

Compute the 2D multi-radii spherical (circular) flux responses

Updated

Efficient implementation of the flux operation described in
[*] Max W. K. Law and Albert C. S. Chung,
“Efficient Implementation for Spherical Flux Computation and Its Application to Vascular Segmentation”, IEEE Transactions on Image Processing, 18(3), pp. 596-612, 2009.

[+] A. Vasilevskiy and K. Siddiqi, “Flux Maximizing Geometric Flows“, IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(12), pp. 1565-1578, 2002.

The flux operation is designed for tubular object analysis (detection, centerline extraction, segmentation, recognition, etc....).

Syntax:
outputresponse = fastflux2(image, radii, sigma, pixelspacing);
outputresponse(3D matrix) : The final output response. (size(outputresponse)=[size(image,1) size(image,2) length(ranges)]).
image (2D matrix) : The input 2D image.
radii (N-D vector) : A vector containing all interested radii for computation of 2D spherical (circular) flux.
sigma (Sclar) : A value that used for image smoothing in during the computation of spherical flux.
pixelspacing (Scalar or 2D vector) : It specifies the pixel size of the input image. This parameter can be omitted if the values of radii and sigma are given in the unit of pixel-length. pixelspacing is a scalar for isotropic pixel size. When pixelspacing is a 2D vector, the pixel is anisotropic and given as [rowwidth columnwidth].

Example:
result = fastflux2(I, 1:5, 1);
Return the result computed from the radii {1,2,3,4,5} on image I.

result = fastflux2(I, 0.4:0.4:2.8, 1, 0.4);
Return the result computed from the radii (0.4mm,0.8mm,1.2mm,1.6mm,2mm,2.4mm,
2.8mm}, where the each pixel is 0.4mmx0.4mm

result = fastflux2(I, 2:5, 1, [1 1.4]);
Return the result computed from the raddi {2mm,3mm,4mm,5mm}, where each pixel
has a size of 1mm x 1.4mm (LxW).

Use the demonstration scripts in this package:
fastflux2demo;
or
fastflux2demo2;
to assess the examples of using fastflux2.m.

Technical details:
The following matlab variables in this package correspond to the symbols used in [*]
image -> I (After Equation 10)
ranges -> M (Equation 29)
sigma -> \sigma (Equation 7)
pixelspacing -> This is a new feature that is not mentioned in [*].
Note1 : This implementation is based on Subband_2 as stated in Fig. 2 in [*].
Note2 : An undersize \sigma value (<0.5 pixel-length) may cause inaccurate computation. Please refer to pp.599-601 in [*].
Note3 : The 2D closed form of spherical flux is slightly different from the 3D computation as described in [*].
Note4 : The coefficient buffering technique and redundant coefficient elimination in [*] are not implemented in this function.

Please kindly cite the following paper if you use this program, or any code extended from this program.
Max W. K. Law and Albert C. S. Chung, "Efficient Implementation for Spherical Flux Computation and Its Application to Vascular Segmentation”, IEEE Transactions on Image Processing, 2009, Volume 18(3), 596–612

Author: Max W.K. Law
Email: max.w.k.law@gmail.com
Page: http://www.cse.ust.hk/~maxlawwk/