Purpose

The module GaussSmoothing applies a fast isotropic Gaussian smoothing to the input image.

Details

A separable Gaussian smoothing is applied along the image dimensions indicated by the user. The 1D Gaussian filter kernels are samples of the function:

../../../Projects/GaussSmoothing/Modules/mhelp/Images/GaussSmoothing001.gif

and they are subsequently normalized so that the average image intensity level remains constant. If an isotropic smoothing in a world coordinate system is desired, the units of sigma should be in millimeters. This is important if voxels are anisotropic.

The image extent in the dimensions to be filtered must exceed 8 times the given sigma in voxels, otherwise no filtering is applied. There is an option to apply an approximate Gaussian smoothing using a recursive filtering approach (IIR) and thereby speed up the computation. This is particularly beneficial for sigmas larger than 2 voxels.

NOTE: The IIR approximation may causes small ringing artifacts. For example, for an image with values between 0 and 1 may after smoothing contain values that are slightly lower than 0 and slightly higher than 1. For unsigned types (uint8, unit16, etc.), the output is truncated to avoid overflow effects due to ringing.

Windows

Default Panel

../../../Projects/GaussSmoothing/Modules/mhelp/Images/Screenshots/GaussSmoothing._default.png

Input Fields

input0

name: input0, type: Image

Output Fields

output0

name: output0, type: Image

Parameter Fields

Field Index

Auto update: Bool x: Bool
c: Bool y: Bool
Gauss sigma: Double z: Bool
Sigma unit: Enum  
t: Bool  
u: Bool  
Update: Trigger  
Use IIR approximation: Bool  

Visible Fields

Gauss sigma

name: sigma, type: Double, default: 1, minimum: 0.5, maximum: 30

Sets the width of the filter kernel.

The kernel is proportional to:

../../../Projects/GaussSmoothing/Modules/mhelp/Images/GaussSmoothing001.gif

Sigma unit

name: unit, type: Enum, default: voxel

Defines the unit of sigma.

Values:

Title Name
voxel voxel
mm mm

x

name: xDim, type: Bool, default: TRUE

If checked, the kernel smooths along the x-direction.

y

name: yDim, type: Bool, default: TRUE

If checked, the kernel smooths along the y-direction.

z

name: zDim, type: Bool, default: TRUE

If checked, the kernel smooths along the z-direction.

c

name: cDim, type: Bool, default: FALSE

If checked, the kernel smooths along the c-direction.

t

name: tDim, type: Bool, default: FALSE

If checked, the kernel smooths along the t-direction.

u

name: uDim, type: Bool, default: FALSE

If checked, the kernel smooths along the u-direction.

Use IIR approximation

name: useApprox, type: Bool, default: TRUE

If checked, an approximate recursive Infinite Impulse Response (IIR) filter is applied instead of a Finite Impulse Response (FIR) filter.

This can increase speed significantly, especially for larger sigmas. Note that this option can cause small ringing artifacts, see more under Details above.

Update

name: update, type: Trigger, deprecated name: calcButton

If pressed, the module computes anew.

Auto update

name: autoUpdate, type: Bool, default: TRUE

If checked, the module computes anew on any parameter or input change.