用GDAL绘制16位tif图像的像素分布图

目录

  • 易错点
  • 代码实现
  • 效果图

易错点

  1. tif格式还是用GDAL读取最适配
  2. 16位的图像不是所有库都能读取,比如用PIL就会报错
  3. 横坐标显示所有像素值会太密集,只选取几个具有代表性的像素值进行显示

代码实现

from osgeo import gdal
from matplotlib import pyplot as plt
import numpy as np
# 打开图像文件
ds = gdal.Open("1.tif")

# 读取图像数据
data = ds.ReadAsArray()

# 获取图像的行数和列数
rows, cols, _ = data.shape

# 创建一个空的统计数组
counts = np.zeros(65536)

# 遍历图像中的每个像素,统计像素值出现的次数
for row in range(rows):
    for col in range(cols):
        counts[data[row, col]] += 1

# 绘制像素分布图
plt.figure(dpi=200)
plt.plot(counts)
plt.show()

效果图

用GDAL绘制16位tif图像的像素分布图_第1张图片

你可能感兴趣的:(RS,python,GDAL)