Skip to content

Denoising

Barisevrenugur edited this page Jul 4, 2024 · 21 revisions

The purpose of this module is to implement different types of methods for denoising of raw/processed MRI images. On the batch GUI different methods can be accessed by choosing the method under Denoising method for raw/processed images. We give a description below for each available method.

LCPCA-Denoising

This module implements the Lcpca denoising:

Bazin, et al. (2019) "Denoising High-Field Multi-Dimensional MRI With Local Complex PCA", Front. Neurosci. doi:10.3389/fnins.2019.01066

The Java module for this denoising method was originally written by Pilou Bazin. In the denoising module, we implement a Java-Matlab interface together with the pre-compiled .jar files which makes it possible to run the Lcpca denoising in the Matlab environment, in the setting of hMRI-toolbox with both magnitude and phase (optional) images. In the Example Test Images section below, we offer a selection of example original-denoised images to illustrate that Gaussian noise was removed and Java-Matlab interface is working.

Notes to read before runnning

This is not a big concern for magnitude-only data but for magnitude-phase data, you might need to increase the Java heap memory. In our case, for our data, ~10GB was enough, perhaps even less is enough but we did not check this. Please set an appropriate Java heap memory size depending on your data set, if you do not want to bother about this, maybe set a high number.

The module has pretty much all the functionalities that the other modules possess currently:

  • Creation of Results and Supplementary directories (supplementary directory contains the logs, processing paramameters, local dimension and residual maps). Results contains the denoised images and metadata sidecar json files.

  • Creation of warnings-errors in case minimum requirements are not met and there are missing inputs.

  • Extended metadata writing to the resulting denoised images that carries the denoising parameters.

  • Included in the metadata of the resulting images is the acquisition parameters (if available) so that the denoised images can be fed back to the toolbox through dependencies.

Matlabbatch GUI input parameters

  1. Enter images to be denoised as contrasts: PDw (required), T1w (optional), MTw (optional)

If you have only one type of contrast this should be entered into the PDw field at the beginning. Each specific contrast has two further components:

  • Magnitude input (required): Magnitude images need to be entered here and they are required. If you are planning to enter (optional) phase images as well, you need to enter both sets of images in the same order.

  • Phase input (optional): The phase input is optional and can be left as is, if you do not wish to enter any phase images.

  1. Processing parameters

You can either stick with metadata and standard defaults parameters (recommended) or select your own customised defaults file. For possible modification of default parameters, please be careful about which parameters are required and which parameters are optional.

  1. Standard deviation cut off

This parameter is the factor of the local noise level to remove PCA components. Higher values remove more components. The optimal cutoff can be increased when including more images. We recommend the following cut-off sizes for various image numbers: 5-10: 1.05, 10-20: 1.10, 20+: 1.20. The default set value (which should work well for most datasets) is 1.05.

  1. Neighborhood size

This parameter sets the size of the local PCA neighborhood. Though the default size is 4, a size of 3 works better in lower resolutions. The default set value here is 4.

Example Test Images

What is most important in these examples is what is removed and whether or not it is the Gaussian noise. As seen in the histograms, the removed part is Gaussian. In each case, the description of 4 images (as a matrix) is as follows:

  • (1,1): denoised image

  • (1,2): original image

  • (2,1): difference

  • (2,2): histogram of the difference

0.5 mm PD data (only magnitude, 8 Echoes, .img/.hdr files)

  • Echo 1:

PDecho1

  • Echo 8:

PDecho8

0.6 mm T1w data (both magnitude and phase, 5 Echoes for both, .nii/.json files)

  • Magnitude (Echo 1):

dpecho1mag

  • Phase (Echo 5):

dpecho5Phase

References