Python 任意角度的Numpy矩阵旋转

Python 任意角度的Numpy矩阵旋转,python,numpy,matrix,Python,Numpy,Matrix,我试图找到一种方法,在我的矩阵上应用任意角度的矩阵旋转,该矩阵包含三个像RGB这样的带,但值大于(0-255) 这是我的数据示例,其形状为(100100,3): 我发现了一个函数scipy.misc.imrotate(image_array,20),但问题是该函数将我的数据重新缩放到范围(0-255),因此我丢失了原始矩阵的信息。是否有一个函数可以在不重新缩放数据的情况下执行与前一个函数相同的任务?您可能希望尝试打开CV。 它允许图像的旋转和平移 根据您选择的插值方法,您可能会对您的值进行一些更

我试图找到一种方法,在我的矩阵上应用任意角度的矩阵旋转,该矩阵包含三个像RGB这样的带,但值大于(0-255)

这是我的数据示例,其形状为(100100,3):


我发现了一个函数
scipy.misc.imrotate(image_array,20)
,但问题是该函数将我的数据重新缩放到范围(0-255),因此我丢失了原始矩阵的信息。是否有一个函数可以在不重新缩放数据的情况下执行与前一个函数相同的任务?

您可能希望尝试打开CV。 它允许图像的旋转和平移


根据您选择的插值方法,您可能会对您的值进行一些更改。

您可能希望尝试打开CV。 它允许图像的旋转和平移


根据您选择的插值方法,您可能会对您的值进行一些更改。

您是否尝试了
scipy.ndimage.interpolation
中的
rotate
功能

import numpy as np
from scipy.ndimage.interpolation import rotate

x = np.random.randint(800, 1000, size=[100, 100, 3])
rotated = rotate(x, angle=45)

它在不缩放值的情况下旋转矩阵。

您是否尝试过
scipy.ndimage.interpolation
中的
rotate
函数

import numpy as np
from scipy.ndimage.interpolation import rotate

x = np.random.randint(800, 1000, size=[100, 100, 3])
rotated = rotate(x, angle=45)

它在不缩放值的情况下旋转矩阵。

为什么不实施为什么不实施谢谢,它似乎实现了我想要的。为了保持与输入相同的形状,即(100100,3),我只需要添加一个额外的参数,即
rotate(x,angle=45,reformate=False)
scipy的此旋转操作更改了对象的强度值,我只是检查并与从PIL.Image.rotate获得的值进行比较。我正在努力避免PIL。谢谢,它似乎达到了我想要的。为了保持与输入相同的形状,即(100100,3),我只需要添加一个额外的参数,即
rotate(x,angle=45,reformate=False)
scipy的此旋转操作更改了对象的强度值,我只是检查并与从PIL.Image.rotate获得的值进行比较。“我试图避免PIL。@Felix Xu,我认为这个问题和公认的答案都与旋转像矩阵一样的图像有关,即旋转平面中的坐标。这也可以通过使用open CVs warpAffine来实现。@Felix Xu,我认为问题和公认的答案都与旋转像矩阵一样的图像有关,即旋转平面中的坐标。这也可以使用open CV WarpeAffine实现。。