Getting started with Dipy ========================= In diffusion MRI (dMRI) usually we use three types of files, a Nifti file with the diffusion weighted data, and two text files one with b-values and one with the b-vectors. In Dipy we provide tools to load and process these files and we also provide access to publically available datasets for those who haven't acquired yet their own datasets. With the following commands we can download a dMRI dataset """ from dipy.data import fetch_sherbrooke_3shell fetch_sherbrooke_3shell() """ By default these datasets will go in the .dipy folder inside your home directory. Here is how you can access them. """ from os.path import expanduser, join home = expanduser('~') """ ``dname`` holds the directory name where the 3 files are in. """ dname = join(home, '.dipy', 'sherbrooke_3shell')
Using the non-local means filter [Coupe08]_ and [Coupe11]_ and you can denoise 3D or 4D images and boost the SNR of your datasets. You can also decide between modeling the noise as Gaussian or Rician (default). """ import numpy as np import nibabel as nib import matplotlib.pyplot as plt from time import time from dipy.denoise.non_local_means import non_local_means from dipy.denoise.nlmeans import nlmeans from dipy.denoise.noise_estimate import estimate_sigma from dipy.data import fetch_sherbrooke_3shell, read_sherbrooke_3shell fetch_sherbrooke_3shell() img, gtab = read_sherbrooke_3shell() data = img.get_data() affine = img.get_affine() mask = data[..., 0] > 80 # We select only one volume for the example to run quickly. data = data[..., 1] print("vol size", data.shape) # lets create a noisy data with gaussian data """ In order to call ``non_local_means`` first you need to estimate the standard