Example #1
0
sphere = unit_icosahedron.subdivide(5)


angles_mean = []
angles_std = []

mask = np.zeros_like(bvals, dtype=bool)
mask[:discarded] = True

#------------------------------------------------------------------------------

recovered_angle = []

SNR = None

sk = SparseKernelModel(gtab, sh_order=8, l1_ratio=0.5, alpha=0.0001)
sk.direction_finder.config(sphere=sphere, min_separation_angle=10)

recovered_angle = np.zeros((len(angles), realizations))

for n, angle in enumerate(angles):

    print "Angle %.2f, %d realizations, discarding %d measurements" % \
          (angle, realizations, discarded)

    # MC simulation loop
    for kk in range(0, realizations):
        E = two_fiber_signal(bvals, bvecs, angle, SNR=SNR)

        ## Create and add in Rician noise
        noiseR = np.random.random(E.shape)
Reconstruct with Sparse Model (adapted from DiPy example)
=========================================================
"""

import numpy as np
from dipy.data import fetch_stanford_hardi, read_stanford_hardi, get_sphere
from dipy.reconst.shm import CsaOdfModel
from dipy.reconst.csdeconv import ConstrainedSphericalDeconvModel
from kernel_model import SparseKernelModel

# Download Stanford data
fetch_stanford_hardi()
img, gtab = read_stanford_hardi()

# Construct model
model = SparseKernelModel(gtab, sh_order=6, loglog_tf=False, l1_ratio=0.99, alpha=0.0005)
#model = CsaOdfModel(gtab, 4)
#model = ConstrainedSphericalDeconvModel(gtab, None)

"""
img contains a nibabel Nifti1Image object (data) and gtab contains a GradientTable
object (gradient information e.g. b-values). For example to read the b-values
it is possible to write print(gtab.bvals).

Load the raw diffusion data and the affine.
"""

data = img.get_data()
print('data.shape (%d, %d, %d, %d)' % data.shape)

"""