Soft threshold


A soft threshold is a preprocessing tool that reduces the BackGround in an image, so VoXels with intensity values below the threshold value are reduced (set to lower values, or even zero). During visualization, these thresholded voxels become more transparent.

Contrary to a standard (hard) threshold, that is 'all or nothing' (values above the threshold are kept, values below it are deleted), the soft threshold function handles images in a different way. It makes smooth transitions between the original an the deleted values: values slightly below the threshold are not set to zero but merely attenuated. In this way the introduction of frayed edges and surfaces during visualization is avoided.

If the original value Si of a voxel is Si > (threshold value + range/2) then the final filtered value Di does not change (Di = Si). If Si < (threshold value - range/2) then the voxel is 'deleted' (Di = 0). For the values in between, a smooth function is applied: if (threshold value -range/2) < Si < (threshold value + range/2) then Di = f(Si) according to the shape function, which in the case of the FastMip renderer, for instance, is a sinusoidal.

0        & \text{if   } S_i < threshold - \frac{range}{2} \\
f(S_i) & \text{if   } threshold - \frac{range}{2} \leq S_i < threshold + \frac{range}{2} \\
S_i     & \text{if   } S_i \geq threshold + \frac{range}{2}

In the HuygensSoftware visualization tools, changing the threshold mode from hard to soft you progressively increase the 'range' value, thus broadening the transition from the original to the deleted values.


A soft threshold can also be applied during analysis, for example for the intersection coefficients in the Colocalization Analyzer. These intersection coefficients are based on binary images, where voxels with intensities below the threshold are set to zero and intensities above the threshold are set to one to count for overlapping volumes. To avoid sharp transitions, this image can be made not exactly binary (0 or 1) but gray-scaled, with intermediate values for pixels with intensities falling in a certain limited range around the threshold.

In this case a linear mapping of the intensities is used assigning values between zero and one for all intensities falling between threshold - range/2 and threshold + range/2.

N.B.: The range is set in the coloc command per-channel, in absolute terms or relative (%) to the estimated background depending on the -threshMode option.