was*_*tor 5 python gradient numpy matplotlib
我试图在图像上叠加箭袋渐变箭头,但由于原点位置不同,它们看起来不正确。我将如何解决这个问题?
这是一个例子。左边的图像是我期望的渐变,但是一旦我将它们绘制在图像的顶部,由于原点位置的变化,它们指向错误的方向。
import matplotlib.pyplot as plt
import numpy as np
test_array = np.array([[0, 0, 0, 0, 0],
[0, 64, 128, 64, 0],
[0, 127, 255, 127, 0],
[0, 64, 127, 64, 0],
[0, 0, 0, 0, 0]]).astype("float")
dy, dx = np.gradient(test_array)
plt.imshow(test_array)
plt.quiver(dx, dy)
plt.show()
Run Code Online (Sandbox Code Playgroud)
如果您想获得与单独绘制箭头相同的绘图方向,您可以通过添加到调用来更改图像的原点:origin='lower'imshow
plt.imshow(test_array, origin='lower')
如果您想将图像原点保留在左上角,您可以在调用时更改箭头的方向plt.quiver:
dy, dx = np.gradient(test_array)
plt.imshow(test_array)
plt.quiver(dx, -dy)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3531 次 |
| 最近记录: |