Optimized Bayesian non-local means filter for ultrasound images:

In image processing, restoration is expected to improve the qualitative inspection of the image and the performance of quantitative image analysis techniques. In this paper, an adaptation of the Non Local (NL-) means filter is proposed for speckle reduction in ultrasound (US) images. Originally developed for additive white Gaussian noise, we propose to use a Bayesian framework to derive a NL-means filter adapted to a relevant ultrasound noise model. Quantitative results on synthetic data show the performances of the proposed method compared to well-established and state-of-the-art methods. Results on real images demonstrate that the proposed method is able to preserve accurately edges and structural details of the image.

References:

  • P. Coupé, P. Hellier, C. Kervrann, C. Barillot. NonLocal Means-based Speckle Filtering for Ultrasound Images. IEEE Transactions on Image Processing, 18(10):2221–9, 2009.
  • C. Kervrann, J. Boulanger, P. Coupé. Bayesian non-local means filter, image redundancy and adaptive dictionaries for noise removal. In SSVM’ 07, Volume 4485, pages 520–532, 2007.
  • P. Coupé, P. Hellier, C. Kervrann, C. Barillot. Dispositif de traitement d’images amélioré. INRIA, Patent: 08/02206, 2008. Publication No. : WO/2009/133307. International Application No. : PCT/FR2009/000445.


Matlab package:

The Matlab code of the 2D version of this filter is available for Linux (32/64 bits), Windows (32/64 bits) and MAC (64bits) .

Installation instructions:

  1. Download the package
  2. Extract the files from .zip
  3. Open Matlab
  4. Select the directory of the OBNLMpackage as current directory
  5. Run the script SpeckleRemoval.m (by opening it and pressing ‘F5’ or by writing ‘SpeckleRemoval’ in the prompt). You can tune the default parameters by editing the script.
  6. Follow the instructions of the GUI to select the input image (you can try one of the images provided as examples in the package in order to verify your architecture compatibility)
  7. Check the results on the figures (see below an example)

Warning #1: the intensity range of the images (input and output) is normalized between 0–255 for writing purpose. I decided to write the normalized input and output images in order to enable comparison and visual assessment of denoising quality (I use the maximum value of noisy image to normalize the denoised one, thus the intensity ranges can be compared).

Warning #2: this implementation is different to the C++ version used in the IEEE TIP paper. The original version is licensed and cannot be distributed. In consequence, the optimal parameters can differ from the IEEE TIP paper.

Warning #3: the example images come from http://www.healthcare.philips.com and are not my property. They are provided as examples and cannot be used for any research purposes.

Warning #4: this filter is patented and can be used only for non commercial purpose. The copyright of this implementation is owned by P. Coupe.


Tips:
- If you can see structures in the “Residual image” decrease the smoothing parameter h
- If you can see speckle in the “denoised image” increase this parameter


Results: