哨兵卫星波段异常值检测与图像预处理流程技术咨询
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
相关产品推荐
相关产品推荐

