You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

哨兵卫星波段异常值检测与图像预处理流程技术咨询

Sentinel影像异常值去除、归一化及8bit RGB生成流程优化

我有经过云掩膜处理的特定分块Sentinel波段TIF影像,现在需要生成8bit RGB影像,但需先消除影像中的异常值与高斯噪声。目前对异常值去除、图像归一化及重缩放的流程存在困惑,现有Python代码片段如下:

# 使用之前步骤中得到的云掩膜影像
denoised_imgs = {}

for band, values in cloudfree.items():
    print(f'波段最大值:{values.max()},最小值:{values.min()}')

    # 异常值检测
    mean_val = np.mean(values)
    print(f'均值:{mean_val}')
    std_val = np.std(values)
    print(f'标准差:{std_val}')
    z_scores = (values - mean_val) / std_val

    threshold = 2
    outlier_mask = np.abs(z_scores) > threshold

    values[outlier_mask] = mean_val

    rescaled = np.clip(values, 0, 255).astype(np.uint8)

    min_val = np.min(values)
    max_val = np.max(values)
    normalized_data = ((values - min_val) / (max_val - min_val)) * 255
    
    # 高斯噪声去除(待启用)
    # img_blur = cv2.bilateralFilter(clipped_band, 9, 5, 5)

    denoised_imgs[band] = normalized_data

# 堆叠去噪后的RGB波段
rgb_denoised = np.dstack([denoised_imgs['B04'], denoised_imgs['B03'], denoised_imgs['B02']])
cropped_denoised = rgb_denoised[uly_pixel:lry_pixel, ulx_pixel:lrx_pixel]
  • cloudfree:字典类型,键为波段名称,值为uint16类型的影像数组

当前使用以下库,希望暂时沿用,也欢迎推荐其他适合学习的相关库:

# 导入库
from pathlib import Path
from osgeo import gdal
import numpy as np
import cv2
import matplotlib.pyplot as plt

内容的提问来源于stack exchange,提问作者Lydia Tab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:15:31