Joint Anisotropic LMMSE Filter for Stationary Rician noise removal in DWI

This software implements the method published at EMBC'13:

A. Tristán-Vega, V. Brion, G. Vegas-Sánchez-Ferrero and S. Aja-Fernández, "Merging squared-magnitude approaches to DWI denoising: An adaptive Wiener filter tuned to the anatomical contents of the image," 2013 35th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC), Osaka, 2013, pp. 507-510.

which is a revision of our former MedIA paper:

A. Tristán-Vega and S. Aja-Fernández, "DWI filtering using joint information for DTI and HARDI," Medical Image Analysis, Volume 14, Issue 2 , 205 - 218.

This module reduces Rician noise on DWI. It filters the image in the mean squared error sense using a Rician noise model. The N closest gradient directions to the direction being processed are filtered together to improve the results: the noise-free signal is seen as an n-dimensional vector which has to be estimated with the LMMSE method from a set of corrupted measurements. The covariance matrix of the noise-free vector and the cross covariance between this signal and the noise have to be estimated, which is done taking into account the image formation process.

All these estimations are performed as sample estimates in a 'shaped neighborhood' defined by the weights extracted from the structural similarity of the voxels following the same idea as in the Non-Local Means filter.

The C++ code can be compiled as either a standalone or as a CLI module for 3-D Slicer  (only "nhdr/nrrd" DWIs are supported) [C++/ITK]. An approximately equivalent Matlab version (but slower) is also available [Matlab].