[Insight-developers] Proposed class: Fast Bilateral Filter

Jordan Woehr jordanwoehr at gmail.com
Mon Jul 20 17:13:21 EDT 2009


Dear Insight Developers,

I have been assisting in research on a project using ITK to perform
quantitative magnetic resonance perfusion analysis. In this project we
use ITK's bilateral filter implementation to smooth the data before
performing deconvolution. This is a very costly operation and takes a
significant amount of time on the 4D data-sets that we work with.

Recently an article has been published regarding a fast bilateral
filter implementation that performs significantly faster than other
bilateral filter accelerations while maintaining accuracy. I would
like to implement this algorithm as a class in ITK. As per the ITK
submission guidelines, I am first mailing the developer mailing list
to ensure that this has not already been implemented in ITK. I have
also provided an abstract for more detail.

Sincerely,
Jordan Woehr


Abstract:

Currently a bilateral filter class (itkBilateralImageFilter) exists
within ITK. This class implements the bilateral filtering algorithm
proposed by Tomasi and Manduchi [1]. The bilateral filter smooths an
image while not blurring its edges. However, it is computationally
expensive and requires many multiplication and add operations per
pixel. Paris and Durand proposed a fast approximation for the
bilateral filter and have shown that their implementation is more
accurate than other accelerations [2], but it has not yet been
implemented in ITK.

The proposed class would implement the fast bilateral filtering
algorithm for grey scale and color images. This would be achieved by
taking the input image and organizing it into the required data
structure. The ITK Image class is being considered as the container.
The currently existing itkDiscreteGaussianImageFilter will then be
used to blur the higher dimensional image. The discrete Gaussian image
filter was chosen because the kernel width used should usually be
small due to the down-sampling involved when using this technique [2].
As described in the ITK documentation, this class should outperform
the recursive Gaussian algorithm due to the small kernel size [3].
After the Gaussian blur has been completed the data will be
interpolated and written to the output image. By incorporating this
class into the ITK framework, this more efficient algorithm can be
made available for ITK users.

References:

[1] C. Tomasi , R. Manduchi, "Bilateral Filtering for Gray and Color
Images," Proceedings of the Sixth International Conference on Computer
Vision, p.839, January 04-07, 1998.

[2] S. Paris, F. Durand, "A Fast Approximation of the Bilateral Filter
Using a Signal Processing Approach," International Journal of Computer
Vision, vol. 81, no. 1, pp. 24-52, January 2009.

[3] Dimitri van Heesch, “ITK: itk::DiscreteGaussianImageFilter<
TInputImage, ToutputImage > Class Template Reference”, [Online
Documentation], (May 28, 2009), Available at HTTP:
http://www.itk.org/Doxygen314/html/classitk_1_1DiscreteGaussianImageFilter.html


More information about the Insight-developers mailing list