Exemple #1
0
    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)