[英]Numpy matrix rotation for any degrees
我试图找到一种方法在我的矩阵上应用任意度数的矩阵旋转,该矩阵包含三个波段,如 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)
但问题是这个函数将我的数据重新scipy.misc.imrotate(image_array, 20)
到范围 (0-255),因此我丢失了原始矩阵的信息。 是否有一个函数可以在不重新缩放数据的情况下完成与前一个相同的工作?
您是否尝试过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)
它确实旋转矩阵而不缩放值。
您可能想尝试打开 CV 的warpAffine() 。 它允许图像的旋转和平移。
根据您选择的插值方法,您可能会对您的值进行一些更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.