Exemplo n.º 1
0
    def _update_affine_transform(self, affine_transform_sitk):

        # Ensure correct object type
        self._affine_transform_sitk = sitk.AffineTransform(
            affine_transform_sitk)

        # Append transform to registration history
        self._history_affine_transforms.append(affine_transform_sitk)

        # Get origin and direction of transformed 3D slice given the new
        # spatial transform
        origin = sitkh.get_sitk_image_origin_from_sitk_affine_transform(
            affine_transform_sitk, self.sitk)
        direction = sitkh.get_sitk_image_direction_from_sitk_affine_transform(
            affine_transform_sitk, self.sitk)

        # Update image objects
        self.sitk.SetOrigin(origin)
        self.sitk.SetDirection(direction)

        self.itk.SetOrigin(origin)
        self.itk.SetDirection(sitkh.get_itk_from_sitk_direction(direction))

        # Update image mask objects
        if self.sitk_mask is not None:
            self.sitk_mask.SetOrigin(origin)
            self.sitk_mask.SetDirection(direction)

            self.itk_mask.SetOrigin(origin)
            self.itk_mask.SetDirection(
                sitkh.get_itk_from_sitk_direction(direction))
Exemplo n.º 2
0
    def _update_sitk_and_itk_stack_position(self, affine_transform_sitk):

        # Apply transform to 3D image / stack of slices
        self.sitk = sitkh.get_transformed_sitk_image(
            self.sitk, affine_transform_sitk)

        # Update header information of other associated images
        origin = self.sitk.GetOrigin()
        direction = self.sitk.GetDirection()

        self.sitk_mask.SetOrigin(origin)
        self.sitk_mask.SetDirection(direction)

        self.itk.SetOrigin(origin)
        self.itk.SetDirection(sitkh.get_itk_from_sitk_direction(direction))

        self.itk_mask.SetOrigin(origin)
        self.itk_mask.SetDirection(
            sitkh.get_itk_from_sitk_direction(direction))