Ejemplo n.º 1
0
 def __init__(self,
              filename=None,
              grid=None,
              displacement=None,
              shape=None):
     if filename is not None:
         t = nib.load(filename)
         self.ndim = t.shape[-1]
         self.shape = t.shape[:-1]
         data = np.copy(t.get_data(), order='C').astype(np.float)
         transpose_axis = (self.ndim, )
         for i in xrange(self.ndim):
             transpose_axis = transpose_axis + (i, )
         data = np.transpose(data, transpose_axis)
         self.grid = data + identity_mapping(self.shape)
     elif grid is not None:
         self.shape = grid.shape[1:]
         self.ndim = grid.shape[0]
         self.grid = np.copy(grid).astype(np.float)
     elif displacement is not None:
         self.shape = displacement.shape[1:]
         self.ndim = displacement.shape[0]
         self.grid = displacement + identity_mapping(self.shape)
     elif shape is not None:
         self.ndim = len(shape)
         self.shape = shape
         self.grid = identity_mapping(self.shape)
Ejemplo n.º 2
0
    def init_mappings(self):
        self.initial_grid = identity_mapping(self.shape)
        self.forward_mappings = np.ones((self.n_step + 1, self.ndim) +
                                        self.shape) * self.initial_grid
        self.backward_mappings = np.copy(self.forward_mappings)

        # jacobian determinants of forward mappings
        self.forward_dets = np.ones((self.n_step + 1, ) + self.shape)
        # jacobian determinants of backward mappings
        self.backward_dets = np.ones((self.n_step + 1, ) + self.shape)
Ejemplo n.º 3
0
    def init_mappings(self):
        self.initial_grid = identity_mapping(self.shape)
        self.forward_mappings = np.ones(
            (self.n_step + 1, self.ndim) + self.shape) * self.initial_grid
        self.backward_mappings = np.copy(self.forward_mappings)

        # jacobian determinants of forward mappings
        self.forward_dets = np.ones(
            (self.n_step + 1,) + self.shape)
        # jacobian determinants of backward mappings
        self.backward_dets = np.ones(
            (self.n_step + 1,) + self.shape)
Ejemplo n.º 4
0
    def save(self, filename, affine=np.identity(4)):
        displacement = self.grid - identity_mapping(self.shape)

        transpose_axis = ()
        for i in xrange(1, self.ndim + 1):
            transpose_axis = transpose_axis + (i, )
        transpose_axis += (0, )

        displacement = np.transpose(displacement, transpose_axis)

        nib.save(nib.Nifti1Image(displacement, affine), filename)

        print "saved transformation: %s" % filename
Ejemplo n.º 5
0
    def save(self, filename, affine=np.identity(4)):
        displacement = self.grid - identity_mapping(self.shape)

        transpose_axis = ()
        for i in xrange(1, self.ndim + 1):
            transpose_axis = transpose_axis + (i,)
        transpose_axis += (0,)

        displacement = np.transpose(displacement, transpose_axis)

        nib.save(nib.Nifti1Image(displacement, affine), filename)

        print "saved transformation: %s" % filename
Ejemplo n.º 6
0
 def __init__(self, filename=None, grid=None, displacement=None, shape=None):
     if filename is not None:
         t = nib.load(filename)
         self.ndim = t.shape[-1]
         self.shape = t.shape[:-1]
         data = np.copy(t.get_data(), order="C").astype(np.float)
         transpose_axis = (self.ndim,)
         for i in xrange(self.ndim):
             transpose_axis = transpose_axis + (i,)
         data = np.transpose(data, transpose_axis)
         self.grid = data + identity_mapping(self.shape)
     elif grid is not None:
         self.shape = grid.shape[1:]
         self.ndim = grid.shape[0]
         self.grid = np.copy(grid).astype(np.float)
     elif displacement is not None:
         self.shape = displacement.shape[1:]
         self.ndim = displacement.shape[0]
         self.grid = displacement + identity_mapping(self.shape)
     elif shape is not None:
         self.ndim = len(shape)
         self.shape = shape
         self.grid = identity_mapping(self.shape)