立青246 2024-03-19 17:32 采纳率: 80%
浏览 1
已结题

envi图像处理有问题

Landsat8遥感图像辐射定标,大气矫正,图像融合还有剪裁过后感觉颜色不对呀

img

  • 写回答

1条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-19 17:32
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析:
    1. Landsat8遥感图像辐射定标:Landsat8卫星在拍摄图像时会受到光照和大气影响,需要进行辐射定标,将数字值转换成实际反射率值。
    2. 大气矫正:Landsat8图像中的云、雾、气溶胶等大气成分会引入噪声,需要进行大气校正处理,以便更准确地获取地物信息。
    3. 图像融合:Landsat8卫星有多个波段,不同波段的信息可以融合,提高图像的质量和信息量。
    4. 剪裁:将图像进行裁剪处理,选取需要的部分。 一般情况下,经过以上处理,Landsat8遥感图像的颜色应该是比较准确的。如果感觉颜色不对,可能是以下几个方面的问题:
    5. 屏幕颜色显示问题:首先要查看屏幕颜色的设置是否正确,是否和原图的颜色模式一致。
    6. 颜色映射方案问题:如果对图像进行了分类或者多光谱图像融合,需要对不同波段的信息进行组合,这时候需要选择合适的颜色方案进行显示。提示:如何选择合适的颜色方案,需要根据实际情况进行判断。
    7. 复合处理过程问题:如果在处理过程中出现了错误,比如错用参数,或者处理步骤存在问题,都有可能影响图像的颜色准确性。 案例分析: 我有一张Landsat8遥感图像,需要进行辐射定标、大气校正、融合处理以及裁剪,最终发现图像的颜色显示有问题,怎么办?
    8. 首先查看电脑屏幕设置,确认颜色模式和原图一致。
    9. 检查颜色映射选项,确认是否合适,比如选择RGB组合,或其他专业颜色方案。
    10. 检查处理过程和参数设置,确保没有错误。 示例代码: 辐射定标处理示例代码:
    import numpy as np
    import rasterio as rio
    # 打开遥感图像
    with rio.open('input.tif') as src:
        # 获取辐射定标参数
        M = src.read_masks(1)
        R = src.read(1)
        M = np.array(M, dtype=bool)
        # 辐射定标
        RADIANCE = src.read(1).astype(float)
        RADIANCE[M] = np.nan
        RADIANCE = src.calibration_radiance(RADIANCE, 1)
        # 设置元数据
        meta = src.meta
        meta['dtype'] = 'float32'
        # 输出辐射定标后的图像
        with rio.open('output_rad.tif', 'w', **meta) as dst:
            dst.write_band(1, RADIANCE.astype(rio.float32))
    

    大气校正示例代码:

    import numpy as np
    import rasterio as rio
    # 打开辐射定标后的图像
    with rio.open('output_rad.tif') as src:
        # 获取大气校正参数
        AOT = 0.2
        water_vapor = 1.5
        ozone = 0.1
        refl_b1 = src.read(1)
        k = 0.016
        # 进行大气校正
        REFLECTANCE = (refl_b1 - (k * AOT)) / (0.01 + 0.002 * AOT * water_vapor + ozone)
        # 更新元数据
        meta = src.meta
        meta['dtype'] = 'float32'
        # 输出大气校正后的图像
        with rio.open('output_atm.tif', 'w', **meta) as dst:
            dst.write_band(1, REFLECTANCE.astype(rio.float32))
    

    图像融合示例代码:

    import numpy as np
    import rasterio as rio
    # 打开大气校正后的图像
    with rio.open('output_atm.tif') as src:
        # 将Bands 2, 3 and 4 红、绿、蓝三个波段融合
        R = src.read(4)
        G = src.read(3)
        B = src.read(2)
        # 将波段合并为一幅图像
        RGB = np.zeros((3, src.height, src.width), dtype=src.dtypes[0])
        RGB[0] = R
        RGB[1] = G
        RGB[2] = B
        # 更新元数据
        meta = src.meta
        meta['count'] = 3
        meta['dtype'] = RGB.dtype
        # 输出融合后的图像
        with rio.open('output_rgb.tif', 'w', **meta) as dst:
            dst.write(RGB)
    

    图像剪裁示例代码:

    import rasterio as rio
    # 打开融合后的图像
    with rio.open('output_rgb.tif') as src:
        # 定义裁剪范围,如(1000, 1000)为左上角坐标,(2000, 2000)为右下角坐标
        window = ((1000, 2000), (1000, 2000))
        # 进行图像裁剪
        rgb_crop = src.read(window=window)
        # 更新元数据
        meta = src.meta
        meta['height'], meta['width'] = rgb_crop.shape[1:]
        # 输出裁剪后的图像
        with rio.open('output_crop.tif', 'w', **meta) as dst:
            dst.write(rgb_crop)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
  • ¥15 Java,消息推送配置
  • ¥15 Java计划序号重编制功能,此功能会对所有序号重新排序,排序后不改变前后置关系。
  • ¥15 关于哈夫曼树应用得到一些问题