代码拉取完成,页面将自动刷新
"""
分类方法可以只是从直方图衍生的某些数据的分布算法,也可以是复杂的培训数据集,甚至机器
学习和人工智能
"""
from osgeo import gdal_array
src = "TIF/thermal/thermal.tif"
output = "TIF/thermal/classified.jpg"
# 施工gdal库加载图片到numpy库
srcArray = gdal_array.LoadFile(src)
# 根据类别数目将直方图分割成20个去颜色区间
classes = gdal_array.numpy.histogram(srcArray, bins=20)[1]
print(len(classes))
# 颜色查找表的记录数必须为 len(classes)+1
# 声明R、G、B 元祖
lut = [[250, 0, 0], [191, 48, 48], [166, 0, 0], [255, 64, 64], [255, 115, 115],
[255, 116, 0], [191, 113, 48], [255, 178, 155], [0, 153, 153],
[29, 115, 115], [0, 99, 99], [166, 75, 0], [0, 204, 0], [51, 204, 204],
[255, 150, 64], [92, 204, 204], [38, 153, 38], [0, 133, 0],
[57, 230, 57], [103, 230, 103], [184, 138, 0]]
print(len(lut))
# 分类初始值
start = 1
# 创建一个RGB颜色的JPEG输出图片
rgb = gdal_array.numpy.zeros((3, srcArray.shape[0], srcArray.shape[1],), gdal_array.numpy.float32)
# 处理所有类并声明颜色
for i in range(len(classes)):
mask = gdal_array.numpy.logical_and(start <= srcArray, srcArray <= classes[i])
for j in range(len(lut[i])):
rgb[j] = gdal_array.numpy.choose(mask, (rgb[j], lut[i][j]))
start = classes[i] + 1
# 输出JPG图片,无地理参照信息
gdal_array.SaveArray(rgb.astype(gdal_array.numpy.uint8), output, format="JPEG")
# 保存为 TIF 并添加地理参照信息, 同时修改保存路径中的文件扩展名.jpg为.tif
# gdal_array.SaveArray(rgb.astype(gdal_array.numpy.uint8), output, format="GTiff",prototype=src)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。