Example #1
0
    def rotate_img_p90(self):
        """
        Rotates the image by 90 degree and updates the background accordingly (does not effect absorption correction).
        The transformation is saved and applied to every new image and background image loaded.
        Notifies observers.
        """
        self._img_data = rotate_matrix_p90(self._img_data)

        if self._background_data is not None:
            self._background_data = rotate_matrix_p90(self._background_data)

        self.img_transformations.append(rotate_matrix_p90)

        self._calculate_img_data()
        self.notify()
Example #2
0
 def reset_img_transformations(self):
     """
     Reverts all image transformations and resets the transformation stack.
     Notifies observers.
     """
     for transformation in reversed(self.img_transformations):
         if transformation == rotate_matrix_p90:
             self._img_data = rotate_matrix_m90(self._img_data)
             if self._background_data is not None:
                 self._background_data = rotate_matrix_m90(self._background_data)
         elif transformation == rotate_matrix_m90:
             self._img_data = rotate_matrix_p90(self._img_data)
             if self._background_data is not None:
                 self._background_data = rotate_matrix_p90(self._background_data)
         else:
             self._img_data = transformation(self._img_data)
             if self._background_data is not None:
                 self._background_data = transformation(self._background_data)
     self.img_transformations = []
     self._calculate_img_data()
     self.notify()