遥感影像的假彩色显示
假彩色显示的概念
假彩色显示是一种将遥感影像的非可见光波段(如近红外波段)与可见光波段(如红、绿、蓝波段)组合,生成一种非自然色彩的图像的技术。这种技术常用于突出某些地物特征(如植被、水体等)。
假彩色显示的常见组合
-
NIR-Red-Green 组合:
- 近红外波段(NIR)映射到红色通道。
- 红色波段(Red)映射到绿色通道。
- 绿色波段(Green)映射到蓝色通道。
- 效果:植被呈现红色,水体呈现深蓝色,城市区域呈现灰色或白色。
-
NIR-Green-Blue 组合:
- 近红外波段(NIR)映射到红色通道。
- 绿色波段(Green)映射到绿色通道。
- 蓝色波段(Blue)映射到蓝色通道。
- 效果:植被呈现红色,水体呈现深蓝色,城市区域呈现灰色或白色。
假彩色显示的步骤
- 读取波段数据:使用
rasterio
读取遥感影像的各个波段(如 NIR、Red、Green)。 - 波段组合:将波段数据按假彩色组合方式堆叠成一个 RGB 图像。
- 显示图像:使用
matplotlib
显示假彩色图像。
示例代码分块说明
1. 导入库
import rasterio
import numpy as np
import matplotlib.pyplot as plt
- 功能:导入所需的库。
rasterio
:用于读取遥感影像。numpy
:用于数组操作。matplotlib.pyplot
:用于绘图。
2. 设置 matplotlib 的字体和符号显示
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
- 功能:设置 matplotlib 的中文字体和解决负号显示问题。
SimHei
是一种常用的中文字体。axes.unicode_minus=False
确保负号正常显示。
3. 读取近红外波段(NIR)数据
nir_path = r'<红外波段数据路径>'
with rasterio.open(nir_path) as src:
nir_band = src.read(1)
- 功能:读取近红外波段(NIR)数据。
nir_path
:NIR 波段文件的路径。rasterio.open()
:打开遥感影像文件。src.read(1)
:读取第一个波段的数据。
4. 读取红色波段(Red)数据
red_path = r'<红光波段数据路径>'
with rasterio.open(red_path) as src:
red_band = src.read(1)
- 功能:读取红色波段(Red)数据。
red_path
:Red 波段文件的路径。src.read(1)
:读取第一个波段的数据。
5. 读取绿色波段(Green)数据
green_path = r'<绿光波段数据路径>'
with rasterio.open(green_path) as src:
green_band = src.read(1)
- 功能:读取绿色波段(Green)数据。
green_path
:Green 波段文件的路径。src.read(1)
:读取第一个波段的数据。
6. 将 NIR、Red、Green 波段组合成假彩色图像
rgb_image = np.stack((nir_band, red_band, green_band), axis=-1)
- 功能:将 NIR、Red、Green 波段数据沿最后一个维度堆叠,生成假彩色图像。
np.stack()
:将多个数组沿指定维度堆叠。axis=-1
:沿最后一个维度堆叠。
7. 创建绘图窗口
plt.figure(figsize=(10, 10))
- 功能:创建一个 10x10 大小的绘图窗口。
8. 显示假彩色图像
plt.imshow(rgb_image)
plt.title("遥感影像假彩色显示(NIR-Red-Green)")
plt.axis('off')
- 功能:显示假彩色图像。
plt.imshow()
:显示 RGB 图像。plt.title()
:设置图像标题。plt.axis('off')
:不显示坐标轴。
9. 显示绘图
plt.show()
- 功能:显示绘图窗口。
Comments NOTHING