块状矩阵旋转任意角度

时间:2018-11-06 11:32:56

标签: python numpy matrix

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

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

 [[ 847.5  877.   886.  ...  821.5  856.5  898. ]
 [ 850.   883.   969.5 ...  885.   878.5  947.5]
 [ 982.   968.5  927.5 ...  909.5  958.  1037. ]
 ...
 [ 912.   827.   893.  ... 1335.  1180.  1131. ]
 [ 954.   855.5  882.  ... 1252.  1266.  1335. ]
 [ 984.   916.   930.  ... 1080.5 1278.  1385.5]]

我找到了一个函数scipy.misc.imrotate(image_array, 20),但是问题是该函数将数据重新缩放到范围(0-255),因此我失去了原始矩阵的信息。是否有一项功能与上一个功能相同而无需重新缩放数据?

2 个答案:

答案 0 :(得分:2)

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

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)

它会旋转矩阵而不缩放值。

答案 1 :(得分:0)

您可能想尝试打开简历的warpAffine()。 它允许图像旋转和移动。

根据插值方法的选择,可能会更改值。