使用 skimage 旋转图像而不裁剪它

rotate image without cropping it, with skimage

我正在使用 skimage 旋转、缩放和平移图像。 returned 图像使用原始图像形状,从而裁剪原始图像。我怎样才能 return 包含整个原始图像的图像?

from skimage import data
from skimage import transform as tf
import numpy as np
import matplotlib.pyplot as plt
import math

image = data.chelsea()

tform = tf.SimilarityTransform(scale=1, rotation=math.pi / 4,
                               translation=(image.shape[0] / 2, -100))    

rotated = tf.warp(image, tform)

plt.imshow(rotated)

如果 scikit-image is allowed to be used (as you mention in your comment), then scipy has just the tool 以外的图书馆:

import matplotlib.pyplot as plt
from scipy.ndimage.interpolation import rotate
import scipy.misc
lena = scipy.misc.lena()
rotated_lena = rotate(lena, 30, reshape=True)
f, (ax0,ax1) = plt.subplots(1,2)
ax0.imshow(lena, cmap='gray')
ax1.imshow(rotated_lena, cmap='gray')
plt.show()  # shows a normal version of Lena and a version that is rotated by 30° CCW, uncropped
import skimage

#Set the argument **resize = True** to get the uncropped 
skimage.transform.rotate(image,angle=45,resize=False, mode='constant')