コード例 #1
0
ファイル: test_eit.py プロジェクト: Garyfallidis/dipy
def test_dni_eit():

    btable = np.loadtxt(get_data('dsi515btable'))
    bvals = btable[:, 0]
    bvecs = btable[:, 1:]
    data, descr = sim_data(bvals, bvecs)
    #load odf sphere
    vertices, faces = sphere_vf_from('symmetric724')
    edges = unique_edges(faces)
    half_vertices, half_edges, half_faces = reduce_antipodal(vertices, faces)
    #create the sphere
    odf_sphere = (vertices, faces)
    dn = DiffusionNablaModel(bvals, bvecs, odf_sphere)
    dn.relative_peak_threshold = 0.5
    dn.angular_distance_threshold = 20
    dnfit = dn.fit(data)
    print('DiffusionNablaModel')
    for i, d in enumerate(data):
        print descr[i], np.sum(dnfit.peak_values[i] > 0)

    ei = EquatorialInversionModel(bvals, bvecs, odf_sphere)
    ei.relative_peak_threshold = 0.3
    ei.angular_distance_threshold = 15
    ei.set_operator('laplacian')
    eifit = ei.fit(data, return_odf=True)
    print('EquatorialInversionModel')
    for i, d in enumerate(data):
        print descr[i], np.sum(eifit.peak_values[i] > 0)
        assert_equal(descr[i][1], np.sum(eifit.peak_values[i] > 0))

    from dipy.viz import show_odfs
    show_odfs(eifit.odf[None, None, :, :], (vertices, faces), scale=2)
コード例 #2
0
ファイル: test_eit.py プロジェクト: iannimmosmith/dipy
def test_dni_eit():
 
    btable=np.loadtxt(get_data('dsi515btable'))    
    bvals=btable[:,0]
    bvecs=btable[:,1:]
    data,descr=sim_data(bvals,bvecs)   
    #load odf sphere
    vertices,faces = sphere_vf_from('symmetric724')
    edges = unique_edges(faces)
    half_vertices,half_edges,half_faces=reduce_antipodal(vertices,faces)
    #create the sphere
    odf_sphere=(vertices,faces)
    dn=DiffusionNablaModel(bvals,bvecs,odf_sphere)
    dn.relative_peak_threshold = 0.5
    dn.angular_distance_threshold = 20
    dnfit=dn.fit(data)
    print('DiffusionNablaModel')
    for i,d in enumerate(data):
        print descr[i], np.sum(dnfit.peak_values[i]>0)
    
    ei=EquatorialInversionModel(bvals,bvecs,odf_sphere)
    ei.relative_peak_threshold = 0.3
    ei.angular_distance_threshold = 15
    ei.set_operator('laplacian')
    eifit = ei.fit(data,return_odf=True)
    print('EquatorialInversionModel')
    for i,d in enumerate(data):
        print descr[i], np.sum(eifit.peak_values[i]>0)
        assert_equal(descr[i][1], np.sum(eifit.peak_values[i]>0))

    from dipy.viz import show_odfs
    show_odfs(eifit.odf[None,None,:,:], (vertices,faces), scale=2)
コード例 #3
0
                                                     'odf_coeffs_*.npz')))):
    data = sph_io.load(os.path.basename(fn))

    print "Dipy model..."
    odf = m.evaluate_odf(data['signal'])
    ODFs.append(odf)
    separation_from_odf(odf)

    print "Quadrature model..."
    odf = kernel_reconstruct(coords['odf_theta'], coords['odf_phi'], data['beta'],
                             theta, phi,
                             kernel=even_kernel, N=data['kernel_N'])
    odf[odf < 0] = 0
    ODFs.append(odf)

    print "Actual angle:", np.rad2deg(data['separation'])
    separation_from_odf(odf)


    ODFs.append(multi_tensor_odf(verts, data['weights'],
                                 mevals=[[1700e-6, 300e-6, 300e-6]] * len(data['weights']),
                                 mevecs=data['mevecs']))


N = 3
ODFs = np.array([[ODFs]]).reshape(len(ODFs) // N, 1, N, -1)

from dipy.viz import show_odfs

show_odfs(ODFs, (verts, faces), scale=2, radial_scale=True)
コード例 #4
0
ファイル: viz_ker_dipy.py プロジェクト: aweinstein/spheredwi
"""Visualize kernel in ODF and signal space.
"""
from sphdif.kernel import even_kernel, inv_funk_radon_even_kernel
from dipy.viz import show_odfs
from dipy.core.subdivide_octahedron import create_unit_sphere

sphere = create_unit_sphere(6)

# sphere.z = np.dot([0, 0, 1], [x, y, z]) = cos(mu)
kernel_odf = even_kernel(sphere.z, N=8)
kernel_signal = inv_funk_radon_even_kernel(sphere.z, N=8)

show_odfs([[[kernel_odf, kernel_signal]]], (sphere.vertices, sphere.faces))
コード例 #5
0
    print "Signal mean:", E.mean()

    if visualize_signal:
        from dipy.core.triangle_subdivide import create_unit_sphere
        sphere = create_unit_sphere(6)
        bb = np.ones(len(sphere.vertices)) * b.mean()

        E_ = w[0] * single_tensor(gradients=sphere.vertices, bvals=bb, S0=1, rotation=R0, SNR=SNR)
        E_ += w[1] * single_tensor(gradients=sphere.vertices, bvals=bb, S0=1, rotation=R1, SNR=SNR)

        ODF = w[0] * single_tensor_ODF(sphere.vertices, rotation=R0)
        ODF += w[1] * single_tensor_ODF(sphere.vertices, rotation=R1)

        from dipy.viz import show_odfs
        show_odfs([[[E_, ODF]]], (sphere.vertices, sphere.faces))


    if visualize_odf:
        plot_ODF(grid_density=D)
        mlab = plot.get_mlab()
        mlab.show()

    # ===========================-=====
    # ODF-domain: Sparse reconstruction
    # =================================

    # Minimising the L1 penalized system
    #
    # ||Xb - y||_2^2 + lambda ||x||_1 subject to x_i >= 0.
    #
コード例 #6
0
ファイル: viz_ker_dipy.py プロジェクト: fperez/spheredwi
"""Visualize kernel in ODF and signal space.
"""
from sphdif.kernel import even_kernel, inv_funk_radon_even_kernel
from dipy.viz import show_odfs
from dipy.core.subdivide_octahedron import create_unit_sphere

sphere = create_unit_sphere(6)

# sphere.z = np.dot([0, 0, 1], [x, y, z]) = cos(mu)
kernel_odf = even_kernel(sphere.z, N=8)
kernel_signal = inv_funk_radon_even_kernel(sphere.z, N=8)

# show_odfs([[[kernel_odf, kernel_signal]]], (sphere.vertices, sphere.faces))
show_odfs([[[kernel_odf]]], (sphere.vertices, sphere.faces))