nul*_*tto 6 python rotation scipy batch-processing ndimage
假设这X是numpy.ndarray一个包含一组彩色图像的张量。例如,X的形状是(100, 3, 32, 32); 即,我们有 100 张 32x32 rgb 图像(例如由 CIFAR 数据集提供的图像)。
我想旋转图像X,我发现这可以使用scipy 的 scipy.ndimage.interpolation.rotate函数来完成。
但是,我每次只能对单个图像和单个颜色通道正确执行此操作,而我想一次对所有图像和所有颜色通道应用该功能。
到目前为止,我尝试并有效的方法如下:
import scipy.ndimage.interpolation
image = X[0,0,:,:]
rotated_image = scipy.ndimage.interpolation.rotate(input=image, angle=45, reshape=False)
Run Code Online (Sandbox Code Playgroud)
但我想做的事,看起来像这样
X_rot = scipy.ndimage.interpolation.rotate(input=X, angle=45, reshape=False)
Run Code Online (Sandbox Code Playgroud)
不起作用。
有没有办法申请scipy.ndimage.interpolation.rotate像numpy.ndarray张量这样的一批图像X?
无论如何,有没有更好的方法来有效地旋转一批图像(存储在 a 中numpy.ndarray)?
如果你想要单线,
import scipy.ndimage.interpolation as intrp
rotated_imgs = [intrp.rotate(input=img, angle=45, reshape=False) for img in X]
Run Code Online (Sandbox Code Playgroud)
假设你的 X 具有更标准的形状(n_images, w, h, color_channels)。
如果您想掌握矩阵,我建议您使用 生成旋转矩阵cv2.getRotationMatrix2D,沿第一个轴复制/堆叠它,然后将其应用到您的X,但如果没有 ,它可能会变得复杂cv2.warpAffine,它需要单个图像作为输入。
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |