This hysteresis function performs a dual thresholding operation on a grayscale image (2D or 3D) using two threshold values (lower and upper). A trinarisation image is also produced where the lower threshold value is set to 1 and the upper threshold value is set to 2. Hysteresis performs better than standard thresholding (single value) because hysteresis uses a loop to produce a more connect segmentation with fewer isolated pixels. The function help is included below:
Hysteresis3d is a simple function that performs trinarisation and hysteresis for 2D and 3D images. Hysteresis3d was inspired by Peter Kovesi's 2D hysteresis function (http://www.csse.uwa.edu.au/~pk/research/matlabfns/). This 3D function takes advantage of the 3D connectivities of imfill instead of the 2D connectivities of bwselect.
img - image for hysteresis (assumed to be non-negative)
t1 - lower threshold value (fraction b/w 0-1, e.g.: 0.1)
t2 - upper threshold value (fraction b/w 0-1, e.g.: 0.9)
(t1/t2 can be entered in any order, larger one will be set as the upper threshold)
conn - number of connectivities (4 or 8 for 2D; 6, 18, or 26 for 3D)
tri - the trinarisation image (values are 0, 1, or 2)
hys - the hysteresis image (logical mask image)
To see an example of hysteresis used to segment a kidney region, please refer to the supplement in QSM of kidney inflammation and fibrosis, NMR Biomed, 2013 Dec;26(12):1853-63 (http://onlinelibrary.wiley.com/doi/10.1002/nbm.3039/abstract). Supplemental material is also available on our CIVMspace: http://www.civm.duhs.duke.edu/lx201204/
Create scripts with code, output, and formatted text in a single executable document.