首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用`scipy.ndimage.interpolation.rotate`旋转一批图像

使用`scipy.ndimage.interpolation.rotate`旋转一批图像
EN

Stack Overflow用户
提问于 2017-06-23 12:24:51
回答 1查看 779关注 0票数 8

假设X是一个包含一组彩色图像的numpy.ndarray张量。例如,X的形状是(100, 3, 32, 32);也就是说,我们有100个32x32RGB图像(比如CIFAR提供的那些)。

我想旋转X中的图像,我发现这可以用scipy.ndimage.interpolation.rotate函数来完成。

但是,每次我只能对单个图像和一个颜色通道正确地执行该功能,而我想一次对所有图像和所有颜色通道应用该功能。

到目前为止,我尝试了以下几点:

代码语言:javascript
运行
复制
import scipy.ndimage.interpolation

image = X[0,0,:,:]
rotated_image = scipy.ndimage.interpolation.rotate(input=image, angle=45, reshape=False)

但我想做的事情,可能是这样的

代码语言:javascript
运行
复制
X_rot = scipy.ndimage.interpolation.rotate(input=X, angle=45, reshape=False)

不管用。

有没有办法将scipy.ndimage.interpolation.rotate应用于像numpy.ndarray张量X这样的一批图像?

在任何情况下,是否有更好的方法来有效地旋转一批图像(存储在numpy.ndarray中)?

EN

回答 1

Stack Overflow用户

发布于 2022-02-08 11:56:22

如果你想要一条线,

代码语言:javascript
运行
复制
import scipy.ndimage.interpolation as intrp

rotated_imgs = [intrp.rotate(input=img, angle=45, reshape=False) for img in X]

假设您的X具有更标准的形状(n_images, w, h, color_channels)

如果您想得到矩阵,我建议您用cv2.getRotationMatrix2D生成旋转矩阵,沿着第一个轴复制/叠加它,然后将它应用到您的X中,但是如果没有cv2.warpAffine,它会变得复杂,因为cv2.warpAffine只需要一个图像作为输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44721396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档