我有一个2D阵列正弦图案,并希望绘制该函数的x和y梯度。我有一个2D数组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
输出?
1条答案
按热度按时间pprl5pva1#
我不知道为什么你认为梯度应该是不同的。但是给定函数的梯度形状应该在不同的水平上具有相同的形状。让我们分析一下:
所以你可以看到它们有相同的形状。添加颜色级别,您将看到差异。