当前位置: 代码网 > it编程>编程语言>Java > GEEMAP 基本操作(一)如何拉伸图像

GEEMAP 基本操作(一)如何拉伸图像

2024年07月28日 Java 我要评论
图像拉伸是最基础的图像增强显示处理方法,主要用来改善图像显示的对比度

图像拉伸是最基础的图像增强显示处理方法,主要用来改善图像显示的对比度,地物提取流程中往往首先要对图像进行拉伸处理。图像拉伸主要有三种方式:线性拉伸、直方图均衡化拉伸和直方图归一化拉伸。

gee 中使用 .sldstyle() 的方法来进行图像的拉伸,相关介绍链接在此

那么 geemap 中如何使用这个功能呢?直接放代码片段:

import ee
import geemap
map = geemap.map(center=[36.7337, -108.2491], zoom=12)
map
# 定义一幅地图
image = ee.image('copernicus/s2_sr_harmonized/20230809t174911_20230809t175605_t12syf')

# 使用 “_enhance_” 作为占位符定义 rastersymbolizer 元素。
template_sld = \
  '<rastersymbolizer>' + \
    '<contrastenhancement><_enhance_/></contrastenhancement>' + \
    '<channelselection>' + \
      '<redchannel>' + \
        '<sourcechannelname>b4</sourcechannelname>' + \
      '</redchannel>' + \
      '<greenchannel>' + \
        '<sourcechannelname>b3</sourcechannelname>' + \
      '</greenchannel>' + \
      '<bluechannel>' + \
        '<sourcechannelname>b2</sourcechannelname>' + \
      '</bluechannel>' + \
    '</channelselection>' + \
  '</rastersymbolizer>'

# 获取具有不同增强功能的 sld。
equalize_sld = template_sld.replace('_enhance_', 'histogram')
normalize_sld = template_sld.replace('_enhance_', 'normalize')

# 分别显示结果
map.addlayer(image, {'bands': ['b4', 'b3', 'b2'], 'min': 0.0, 'max': 3000}, 'linear')
map.addlayer(image.sldstyle(equalize_sld), {'gamma': [1.2, 1.2, 1.2]}, 'equalized')
map.addlayer(image.sldstyle(normalize_sld), {}, 'normalized')

首先,我们看看(432波段)结果对比:

1、 linear (线性拉伸)
请添加图片描述

2、 equalized (直方图均衡化拉伸)
请添加图片描述

3、normalized (直方图归一化拉伸)
请添加图片描述


再来看看(843波段)结果对比:

1、 linear (线性拉伸)
请添加图片描述

2、 equalized (直方图均衡化拉伸)
请添加图片描述

3、normalized (直方图归一化拉伸)
请添加图片描述


怎么样朋友们,是不是能为目视解译提供更多的细节?

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com