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))
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))