使用skimage旋转图像而不进行裁剪

时间:2015-01-20 16:35:58

标签: python image image-processing

我正在使用skimage来旋转,缩放和翻译图像。返回的图像使用原始图像形状,从而裁剪原始图像。如何返回包含整个原始图像的图像?

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)

enter image description here

2 个答案:

答案 0 :(得分:3)

如果允许使用scikit-image以外的库(正如您在评论中提到的那样),那么scipy只有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

答案 1 :(得分:0)

import skimage

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