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

问题描述 投票:0回答:2

我正在使用 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

python image image-processing
2个回答
3
投票

如果允许使用 scikit-image 以外的库(正如您在评论中提到的那样),那么 scipy 只有 工具

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

2
投票
import skimage

#Set the argument **resize = True** to get the uncropped 
skimage.transform.rotate(image,angle=45,resize=True, mode='constant')
© www.soinside.com 2019 - 2024. All rights reserved.