def resize(self, size, interp='bilinear'):
        """Resize the image.

        Parameters
        ----------
        size : int, float, or tuple
            * int   - Percentage of current size.
            * float - Fraction of current size.
            * tuple - Size of the output image.

        interp : :obj:`str`, optional
            Interpolation to use for re-sizing ('nearest', 'lanczos', 'bilinear',
            'bicubic', or 'cubic')

        Returns
        -------
        :obj:`GrayscaleImage`
            The resized image.
        """
        resized_data = sm.imresize(self.data, size, interp=interp)
        return GrayscaleImage(resized_data, self._frame)