          logger.trace("invert: %s, Original points: %s, transformed points: %s",
                       invert, points, retval)
          return retval
  
      def _extract_face(self, image):
          """ Extract the face from a source image and populate :attr:`face`. If an image is not
          provided then ``None`` is returned.
  
          Parameters
          ----------
 
</s> remove     def get_cropped_size(self, centering):
        """ Obtain the size of a cropped face from a full head centered image.

        Parameters
        ----------
        centering: ["legacy", "face"]
            The type of centering to obtain the region of interest for. "legacy" places the nose
            in the center of the image (the original method for aligning). "face" aligns for the
            nose to be in the center of the face (top to bottom) but the center of the skull for
            left to right.

        Returns
        -------
        int
           The pixel size of a sub-crop image from a full head aligned image

        Notes
        -----
        The ROI in relation to the source image is calculated by rounding the padding of one side
        to the nearest integer then applying this padding to the center of the crop, so the size
        is calculated in the same way.
        """
        if self._centering != "head":
            raise ValueError("Sub ROI can only be obtained from an aligned face with 'head' "
                             "centering")
        with self._cache["cropped_size"][1]:
            if not self._cache["cropped_size"][0].get(centering):
                src_size = self.size - (self._size * _EXTRACT_RATIOS["head"])
                size = 2 * int(np.rint(src_size / (1 - _EXTRACT_RATIOS[centering]) / 2))
                logger.trace("centering: %s, size: %s, crop_size: %s", centering, self._size, size)
                self._cache["cropped_size"][0][centering] = size
        return self._cache["cropped_size"][0][centering]

    def get_cropped_slices(self, centering):
 </s> add     def _get_cropped_slices(self): </s> remove             if self._is_aligned:
                raise ValueError("An aligned face must be provided if calling with "
                                 "'is_aligned=True'")
 </s> add  </s> remove         Parameters
        ----------
        centering: ["legacy", "face"]
            The type of centering to obtain the region of interest for. "legacy" places the nose
            in the center of the image (the original method for aligning). "face" aligns for the
            nose to be in the center of the face (top to bottom) but the center of the skull for
            left to right.

 </s> add  </s> remove         sub-cropped face to the correct centering, revers the sub crop and returns the cropped
 </s> add         sub-cropped face to the correct centering, reverse the sub crop and returns the cropped
    def extract_face(self, image):
          logger.trace("invert: %s, Original points: %s, transformed points: %s",
                       invert, points, retval)
          return retval
  
    def extract_face(self, image):
          """ Extract the face from a source image and populate :attr:`face`. If an image is not
          provided then ``None`` is returned.
  
          Parameters
          ----------
keep keep keep keep replace keep keep keep keep keep
 Bugfix - Warp to landmarks 
lib/align/aligned_face.py