def transform(self, translation, theta, method='opencv'):
        """Create a new image by translating and rotating the current image.

        Parameters
        ----------
        translation : :obj:`numpy.ndarray` of float
            The XY translation vector.
        theta : float
            Rotation angle in radians, with positive meaning counter-clockwise.
        method : :obj:`str`
            Method to use for image transformations (opencv or scipy)

        Returns
        -------
        :obj:`Image`
            An image of the same type that has been rotated and translated.
        """
        # transform channels separately
        color_im_tf = self.color.transform(translation, theta, method=method)
        depth_im_tf = self.depth.transform(translation, theta, method=method)

        # return combination of cropped data
        return RgbdImage.from_color_and_depth(color_im_tf, depth_im_tf)