def set_vector_fields(self, shape): assert self.n_step % 2 == 0 self.n_step_half = self.n_step / 2 # moving -> midpoint self.forward_vector_fields = VectorFields(self.n_step_half, shape) # midpoint <- fixed self.backward_vector_fields = VectorFields(self.n_step_half, shape)
def execute_coarse_to_fine(self): vector_fields = VectorFields(self.n_step, shape=self.shape) for n_iter, resolution, sigma in zip(self.n_iters, self.resolutions, self.smoothing_sigmas): print "=======================================" print "resolution", resolution fixed = self.fixed.change_resolution(resolution, sigma) moving = self.moving.change_resolution(resolution, sigma) shape = fixed.get_shape() self.vector_fields = vector_fields.change_resolution(resolution) self.deformation.set_shape(shape) v = 0.5 * (self.vector_fields[:-1] + self.vector_fields[1:]) self.deformation.update_mappings(v) vector_fields = self.optimization_coarse_to_fine( fixed, moving, n_iter, resolution) return self.deformation
def set_vector_fields(self, shape): self.vector_fields = VectorFields(self.n_step, shape)