我尝试找到一种方法,在包含三个带(如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),因此我失去了原始矩阵的信息。是否有一项功能与上一个功能相同而无需重新缩放数据?
答案 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()。 它允许图像旋转和移动。
根据插值方法的选择,可能会更改值。