Ada*_*ite 3 python opengl matplotlib
我的目标是将纹理(即图像)覆盖在表面上,并使用 python 将其可视化为 3D。该应用程序正在通过 DEM 查看正射影像,因此我使用 gdal 导入我的数据(图像和 DEM)。我尝试使用 matplotlib 中的 plot_surface,但似乎无法向表面添加纹理。
这是当前的代码:
from osgeo import gdal
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
import numpy as np
ds = gdal.Open('MyDEM.cub')
dem = ds.ReadAsArray()
do = gdal.Open('MyOrtho.cub')
or = do.ReadAsArray()
xres = gt[1]
yres = gt[5]
X = np.arange(gt[0], gt[0] + dem.shape[1]*xres, xres)
Y = np.linspace(gt[3], gt[3] + dem.shape[0]*yres, ds.RasterYSize)
X, Y = np.meshgrid(X, Y)
fig, ax = plt.subplots(figsize=(16,8), subplot_kw={'projection': '3d'})
surf = ax.plot_surface(X,Y,dem,rstride=1, cstride=1,linewidth=0, antialiased=True,cmap=plt.cm.RdYlBu_r)
fig.colorbar(surf, shrink=0.4, aspect=20)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我如何使用或数组作为纹理(例如,或者可以具有与 dem 不同的分辨率/大小,但我稍后会管理它),我想首先拥有一个带有纹理的愚蠢的 3D 表面。这在 Matlab 中很容易,但是如何用 Python 做到呢?任何的想法 ?
| 归档时间: |
|
| 查看次数: |
3132 次 |
| 最近记录: |