Denoise

denoise - Diffusion-Weighted Image Noise Reduction

Part of the micaflow processing pipeline for neuroimaging data.

This module denoises diffusion-weighted images (DWI) using the Patch2Self algorithm, which leverages redundant information across diffusion gradients to remove noise without requiring additional reference scans. Patch2Self is a self-supervised learning approach that improves image quality and enhances subsequent diffusion analyses by removing random noise while preserving anatomical structures.

Features:

  • Self-supervised learning approach requiring no separate reference data

  • Adapts to the unique noise characteristics of each dataset

  • Preserves anatomical structure while effectively removing noise

  • Compatible with standard diffusion MRI acquisition protocols

  • Improves subsequent analyses such as fiber tracking and diffusion metrics

API Usage:

micaflow denoise

–input <path/to/dwi.nii.gz> –bval <path/to/dwi.bval> –bvec <path/to/dwi.bvec> –output <path/to/denoised_dwi.nii.gz>

Python Usage:

>>> from micaflow.scripts.denoise import run_denoise
>>> run_denoise(
...     moving="raw_dwi.nii.gz",
...     moving_bval="dwi.bval",
...     moving_bvec="dwi.bvec",
...     output="denoised_dwi.nii.gz"
... )

Command Line Usage

micaflow denoise [options]

Source Code

View the source code: GitHub Repository

Description

This script denoises diffusion-weighted images (DWI) using the Patch2Self

algorithm, which leverages redundant information across diffusion gradients to remove noise without requiring additional reference scans.

Full Help

╔════════════════════════════════════════════════════════════════╗
║                     DWI IMAGE DENOISING                        ║
╚════════════════════════════════════════════════════════════════╝

This script denoises diffusion-weighted images (DWI) using the Patch2Self
algorithm, which leverages redundant information across diffusion gradients
to remove noise without requiring additional reference scans.

────────────────────────── USAGE ──────────────────────────
  micaflow denoise [options]

─────────────────── REQUIRED ARGUMENTS ───────────────────
  --input     : Path to the input DWI image (.nii.gz)
  --bval      : Path to the b-values file (.bval)
  --bvec      : Path to the b-vectors file (.bvec)
  --output    : Output path for the denoised image (.nii.gz)

─────────────────── EXAMPLE USAGE ───────────────────
  micaflow denoise \
    --input raw_dwi.nii.gz \
    --bval dwi.bval \
    --bvec dwi.bvec \
    --output denoised_dwi.nii.gz

────────────────────────── NOTES ─────────────────────────
- Patch2Self is a self-supervised learning method for denoising
- Processing preserves anatomical structure while removing noise
- The implementation uses OLS regression with b0 threshold of 50 s/mm²
- B0 volumes are not denoised separately in this implementation