You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于TIF图像像素强度在Python中生成3D图?

基于TIF像素强度生成3D可视化图的实现方案

所需工具库

  • matplotlib:负责3D图形绘制
  • pillow/rasterio:读取TIF图像数据(前者适合普通TIF,后者更适配遥感多波段TIF)
  • numpy:处理像素数值矩阵

先通过pip安装依赖:

pip install matplotlib pillow numpy rasterio

实现代码

方案1:普通TIF图像(单通道/彩色转灰度)

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 读取TIF并转灰度
img = Image.open("your_image.tif")
img_gray = img.convert("L")
z = np.array(img_gray)  # 像素强度作为Z轴高度

# 生成像素坐标网格
x = np.arange(z.shape[1])
y = np.arange(z.shape[0])
X, Y = np.meshgrid(x, y)

# 创建3D画布
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')

# 绘制3D表面图,匹配示例风格
surf = ax.plot_surface(X, Y, z, cmap='terrain', edgecolor='none', alpha=0.9)

# 配置坐标轴与颜色条
ax.set_xlabel('X 像素')
ax.set_ylabel('Y 像素')
ax.set_zlabel('像素强度')
fig.colorbar(surf, shrink=0.5, aspect=8)

# 调整视角(可根据需求修改elev/azim数值)
ax.view_init(elev=35, azim=-70)

# 保存或显示结果
plt.savefig("3d_tif_result.png", dpi=300)
plt.show()

方案2:遥感多波段TIF(读取指定波段)

如果你的TIF是类似示例的遥感影像,用rasterio读取特定波段更合适:

import numpy as np
import rasterio
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

with rasterio.open("your_image.tif") as src:
    z = src.read(1)  # 读取第一波段数据作为Z轴高度

# 后续坐标生成、绘图代码同方案1
x = np.arange(z.shape[1])
y = np.arange(z.shape[0])
X, Y = np.meshgrid(x, y)

fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, z, cmap='terrain', edgecolor='none', alpha=0.9)

ax.set_xlabel('X 像素')
ax.set_ylabel('Y 像素')
ax.set_zlabel('波段反射率')
fig.colorbar(surf, shrink=0.5, aspect=8)

ax.view_init(elev=35, azim=-70)
plt.savefig("3d_remote_sensing_result.png", dpi=300)
plt.show()

调整技巧

  • 颜色映射:修改cmap参数,比如viridis、jet、terrain等,terrain更接近示例的地貌色调
  • 视角调整:修改ax.view_init(elev=XX, azim=XX)中的数值,elev是垂直仰角,azim是水平方位角
  • 性能优化:如果图像尺寸过大,可对z数组做降采样,比如z = z[::2, ::2],减少数据量提升绘制速度

内容的提问来源于stack exchange,提问作者code_lover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:52:28