我有一个numpy数组的图像,带有(w,h,3),我想使用叠加正弦波生成的一些值沿y轴扭曲它
下面是该方法的代码和3个图像(输入、当前输出、所需输出)。所需的输出是使用Photoshop Wave扭曲过滤器完成的,该过滤器具有重复边缘像素的选项。 基本上,我想实现这个选项来重复边缘像素,而不是环绕像素,这样图像看起来更像一条路径
另一件事是,我不认为np.roll()是做这项工作的正确方法,但我对任何与numpy相关的东西都是一个十足的noob
def distortH(data, distortions, w, h):
imgdata = np.zeros((h, w, 3), dtype=np.uint8)
for y in range(h):
imgdata[y] = np.roll(data[y], distortions[y], axis=0)
return imgdata
数据:带w、h、3的numpy阵列
扭曲:长度为h且扭曲的数组 值介于-500和500之间(在这种情况下,失真值将 根据图像大小具有不同的缩放比例)
w:图像的宽度
h:图像的高度
提前谢谢
解决了
roll()确实不是正确的方法
使用numpy.pad()解决了这个问题
可能不是解决这个问题的最佳方法。但这比手动遍历所有行并逐个交换像素要快得多
相关问题 更多 >
编程相关推荐