Accurate Gaussian Blur

Author: Michael Schmid (schmid at iap.tuwien.ac.at)
History: Version 10-Oct-2008 - Based on the built-in Gaussian Blur, but with higher default accuracy, accuracy-dependent downscaling and double precision kernels (for avoiding rounding errors).
Requires: ImageJ 1.38n or later
Source: Accurate_Gaussian_Blur.java
Installation: Copy Accurate_Gaussian_Blur.class to the plugins folder and restart ImageJ.
Description: This plug-in filter uses convolution with a Gaussian function for smoothing. It uses the same algorithm as the ImageJ built-in Process>Filters>Gaussian Blur filter, but has higher accuracy, especially for float (32-bit) images (leading to longer calculation times, however).

Filter parameters:

  • Sigma (Radius) means the radius of decay to exp(-0.5) ~ 61%, i.e. the standard deviation sigma of the Gaussian.
  • Scaled Units means that the value of sigma is not in pixels but rather in units defined by the x&y image scale (for images with spatial calibration)
Notes:
  • Like all convolution operations in ImageJ, this filter assumes that out-of-image pixels have a value equal to the nearest edge pixel. This gives higher weight to edge pixels than pixels inside the image, and higher weight to corner pixels than non-corner pixels at the edge. Thus, when smoothing with very high blur radius, the output will be dominated by the edge pixels and especially the corner pixels. In the extreme case of a very high a blur radius, e.g. 1e20, the image will be replaced by the average of the four corner pixels.
  • For increased speed, except for small blur radii, the lines (rows or columns of the image) are downscaled before convolution and upscaled to their original length thereafter.

|Plugins | Home |