コード例 #1
0
 def odf(self, Pr):
     """ fill the odf by sampling radially on the pdf
     
     crucial parameter here is self.radius
     """
     odf = np.zeros(self.odfn)
     """ 
     #for all odf vertices        
     for m in range(self.odfn):
         xi=self.origin+self.radius*self.odf_vertices[m,0]
         yi=self.origin+self.radius*self.odf_vertices[m,1]
         zi=self.origin+self.radius*self.odf_vertices[m,2]
         #apply linear 3d interpolation (trilinear)
         PrI=map_coordinates(Pr,np.vstack((xi,yi,zi)),order=1)
         for i in range(self.radiusn):
             odf[m]=odf[m]+PrI[i]*self.radius[i]**2
     """
     PrIs = map_coordinates(Pr, self.Xs, order=1)
     #print PrIs.shape
     """ in pdf_to_odf an optimized version of the function below
     for m in range(self.odfn):
         for i in range(self.radiusn):
             odf[m]=odf[m]+PrIs[m*self.radiusn+i]*self.radius[i]**2
     """
     pdf_to_odf(odf, PrIs, self.radius, self.odfn, self.radiusn)
     return odf
コード例 #2
0
ファイル: dsi.py プロジェクト: jgors/dipy
 def odf(self,Pr):
     """ fill the odf by sampling radially on the pdf
     
     crucial parameter here is self.radius
     """
     odf = np.zeros(self.odfn)        
     """ 
     #for all odf vertices        
     for m in range(self.odfn):
         xi=self.origin+self.radius*self.odf_vertices[m,0]
         yi=self.origin+self.radius*self.odf_vertices[m,1]
         zi=self.origin+self.radius*self.odf_vertices[m,2]
         #apply linear 3d interpolation (trilinear)
         PrI=map_coordinates(Pr,np.vstack((xi,yi,zi)),order=1)
         for i in range(self.radiusn):
             odf[m]=odf[m]+PrI[i]*self.radius[i]**2
     """
     PrIs=map_coordinates(Pr,self.Xs,order=1)        
     #print PrIs.shape
     """ in pdf_to_odf an optimized version of the function below
     for m in range(self.odfn):
         for i in range(self.radiusn):
             odf[m]=odf[m]+PrIs[m*self.radiusn+i]*self.radius[i]**2
     """
     pdf_to_odf(odf,PrIs, self.radius,self.odfn,self.radiusn) 
     return odf
コード例 #3
0
ファイル: dsi.py プロジェクト: pombredanne/dipy
def pdf_odf(Pr, sphere, rradius, interp_coords):
    r""" Calculates the real ODF from the diffusion propagator(PDF) Pr

    Parameters
    ----------
    Pr : array, shape (X, X, X)
        probability density function
    sphere : Sphere
        reconstruction sphere
    rradius : array, shape (N,)
        interpolation range on the radius
    interp_coords : array, shape (N, 3)
        coordinates in the pdf for interpolating the odf
    """
    verts_no = sphere.vertices.shape[0]
    odf = np.zeros(verts_no)
    rradius_no = len(rradius)
    #interp_coords = pdf_interp_coords(sphere, rradius, origin)
    PrIs = map_coordinates(Pr, interp_coords, order=1)
    pdf_to_odf(odf, PrIs, rradius, verts_no, rradius_no)
    return odf