Matplotlibを使用して画像の背景にグラフをプロットしたいと思います。 matlabでそれを行う方法を見つけました http://www.peteryu.ca/tutorials/matlab/plot_over_image_background
私はこのような基本的なものを試しました:
im = plt.imread("dd.png")
implot = plt.imshow(im)
theta=np.linspace(0,2*np.pi,50)
z=np.cos(theta)*39+145
t=np.sin(theta)*39+535-78+39
plt.plot(z,t)
plt.show()
しかし、それは私に本当にsomethingい何かを与えました:
リンクしたMATLABの例のように、imshow
を呼び出すときに、イメージの目的の範囲を指定する必要があります。
既定では、matplotlibとMATLABはどちらも画像の左上隅をOriginに配置し、そこから右下に移動し、各ピクセルを座標空間で1x1の正方形として設定します。これがあなたの画像がしていることです。
これは、リストの形式をとるextent
パラメーターで制御できます[left, right, bottom, top]
。
エクステントを使用しない場合は次のようになります。
import matplotlib.pyplot as plt
img = plt.imread("airlines.jpg")
fig, ax = plt.subplots()
ax.imshow(img)
サミュエルL.ジャクソンの1600 x 1200が、率直に言って、飛行機に乗っているヘビにかなり悩まされていることがわかります。
しかし、これを介して両方の次元で0から300の範囲の線をプロットしたい場合は、次のようにします。
fig, ax = plt.subplots()
x = range(300)
ax.imshow(img, extent=[0, 400, 0, 300])
ax.plot(x, x, '--', linewidth=5, color='firebrick')
この線が蛇の問題でジャクソン氏を助けるかどうかはわかりません。少なくとも、物事が難しくなることはありません。