2D 数组的 Numpy 梯度

问题描述 投票:0回答:1

我有一个 2D 数组正弦模式,想要绘制该函数的 x 和 y 梯度。我有一个二维数组

image_data
:

def get_image(params):
    # do some maths on params
    return(image)

params = (a, b, c)
image_data = get_image(params)

我使用

numpy.gradient
来获取渐变:

gradients = numpy.gradient(image_data)
x_grad = gradients[0]
y_grad = gradients[1]

绘制所有三个看起来像:

此图案不是 45 度。我希望 x 和 y 梯度不同。在我看来,

x_gradient[i][j]
应该是
image_data[i][j]
相对于两侧索引的梯度,
y_gradient[i][j]
相对于上方和下方索引的梯度。由于图案稍微倾斜,因此在
image_data
中,梯度以不同的速率变化。

我是否误解了我的数据或不理解

numpy.gradient
输出?

python arrays numpy gradient
1个回答
5
投票

我不知道为什么你认为梯度应该不同。但是给定函数的梯度形状应该具有相同的形状和不同的级别。我们来分析一下:

所以你可以看到它们都有相同的形状。添加颜色级别,您就会看到差异。

© www.soinside.com 2019 - 2024. All rights reserved.