2017-03-14 10 views
1

イメージ上に震えグラディエントの矢印を重ねることを試みていますが、原点の位置が異なるため、正しく表示されません。どうすればこの問題を解決できますか?superimpose matplotlibイメージ上の震動

これは一例です。左のイメージは、私が期待するグラデーションですが、イメージの上に描画すると、原点の位置が変わったため、間違った方向を指しています。

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.]]) 

dy, dx = np.gradient(test_array) 
plt.imshow(test_array) 
plt.quiver(dx, dy) 
plt.show() 

enter image description here enter image description here

答えて

2

あなたは一人で矢印をプロットすると得る同じプロットの向きを持つようにしたい場合は、あなたがimshowコールにorigin='lower'を追加することにより、origin of the imageを変更することができます。

plt.imshow(test_array, origin='lower')

イメージの原点を左上隅に残したい場合は、dirを変更するだけです矢印の操作plt.quiver

dy, dx = np.gradient(test_array) 
plt.imshow(test_array) 
plt.quiver(dx, -dy) 
plt.show() 
+0

代わりに震えを変更する方法はありますか?私は左上に座標を保持したい、それは画像の標準だから。 – waspinator

+0

@waspinator - 左上に画像の向きを保持する2番目の答えを追加しました。 – Craig

関連する問題