i3dlib

Documentation

i3d::LODGaussianBlur< VOXELIN, VOXELOUT > Class Template Reference
[Image preprocessing filters]

This class implements the classical Gaussian Blur filter by solving the following PDE $ u_t = \Delta u = (u_{xx} + u_{yy}) $. The main advantage is the constant speed of computation for any size of standard deviation $ \sigma $. The speed is comparable to the speed of Fourier transform based filters. The second advantage is that this filter preserve the average grey value of the blurred image. More...

#include <LevelSet.h>

Inheritance diagram for i3d::LODGaussianBlur< VOXELIN, VOXELOUT >:

i3d::ImplicitLODScheme< VOXELIN, VOXELOUT > i3d::PDESolver< VOXELIN, VOXELOUT > List of all members.

Public Member Functions

void SetSigma (VOXELOUT s)
 Set the standard deviation of the gaussian blur.
VOXELOUT GetSigma ()
 Get the standard deviation of the gaussian blur.

Detailed Description

template<class VOXELIN, class VOXELOUT>
class i3d::LODGaussianBlur< VOXELIN, VOXELOUT >

This class implements the classical Gaussian Blur filter by solving the following PDE $ u_t = \Delta u = (u_{xx} + u_{yy}) $. The main advantage is the constant speed of computation for any size of standard deviation $ \sigma $. The speed is comparable to the speed of Fourier transform based filters. The second advantage is that this filter preserve the average grey value of the blurred image.

It is well-known that Gaussian convolution with standard deviation $\sigma $ is equivalent to linear diffusion filtering (solving the equation $ u_t = \Delta u = (u_{xx} + u_{yy}) $) for some $ T = \sigma^2/2$. This class implements this filter. For solving it uses the LOD scheme which is fully implemented in the super class ImplicitLODScheme. The user must only set the standard deviation and numger of iterations. The time step is computed automatically.

The implementation of this class is based on the article
Joachim Weickert, Bart M. ter Haar Romeny, Max A. Viergever, Efficient and Reliable Schemes for Nonlinear Diffusion Filtering , IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 6, NO. 3, PP. 398-410, MARCH 1998.

The example code of Gaussian Blur filter (class LODGaussianBlur).

    .....
   
   Image3d<GRAY8> i;
   Image3d<float> fimg;
   i.ReadImage('input.tif'); // read input image
   LODGaussianBlur<GRAY8,float> G(i,fimg);
   G.SetSigma(4.0); // Set the standard deviation
   G.SetMaximumNumberOfIterations(1); // Set number of applications of the gaussian
   G.SetSpacing(1.0,1.0,3.0); // Set the spacing
   G.Execute(); // Perform the work of the filter
   
   ......
  
Author:
Jan Hubený xhubeny@fi.muni.cz
Date:
2005


The documentation for this class was generated from the following files: