使用matplotlib进行3D和2D图像绘制

时间:2019-05-29 11:06:54

标签: python opencv matplotlib image-processing

在进行相位相关之后,我得到了一个像图像一样存储在FITS文件中的numpy数组。我想在this images的3D和2D绘图中看到中心的一个峰 这里有一些代码,我创建了一个裁剪中心的函数。

我试图使用arange函数为x和y生成一些值。我得到this。 我的问题是如何使x和y成为数据数组的行和列的值。

# opening and loading fits file data
data = fits.open('../exposures/POC_FILE2.fits')[0].data
# crop center portion of numpy array
data = cropcenter(data, 300, 300)

x = np.arange(0, data.shape[0], 1) # 2d numpy array
y = np.arange(0, data.shape[1], 1) # 2d numpy array
x, y = np.meshgrid(x, y)

'''
for i in range(1,17,2):
    xi = data[:, i]
    yi = data[i, :]

    xi = np.linspace(min(xi), max(xi))
    yi = np.linspace(min(yi), max(yi))
'''

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, x, data, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(x, y, data, zdir='z', offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2, 2)
plt.show()

0 个答案:

没有答案