1.一种基于landsat光学遥感图像的云识别方法,该方法包括:
步骤1:识别初始云像素
关于云图像和参考图像之间,云像素在蓝光波段的反射率变化值ρblue(change)为:
ρblue(change)=max(ρblue(cloud)-ρblue(ref′))-(ρblue(cloud)-ρblue(ref′))(1)
其中,
对于云像素,结合ρblue(cloud)值和ρblue(change)值,计算云指数:
结合ρblue(cloud)和ρblue(change)的归一化形式,ci的取值范围在-1到1之间,对于云像素来说ci值比非云像素大;基于以下两个标准在pother像素中确定了初始云像素:
1):初始云像素i的ci值
其中,median()表示取中值;
2):使用相对阈值来分别确定每类的初始云像素;利用k-means方法对参考图像进行聚类;分类的数目设置为4-5类;以其中的一类为例,在类a中初始云像素i的ci值表示为
其中mean(·)和std(·)分别是均值函数和标准差函数,ci(pother)表示pother的ci值;参数a为标准差倍数;
步骤2:识别初始的云阴影像素;提出云阴影指数csi识别初始云阴影,csi表示如下:
其中:
ρnir(change)=(ρnir(ref′)-ρnir(cloud))-min(ρnir(ref′)-ρnir(cloud))(7)
ρnir(cloud)表示云图像中像素在近红外波段的反射率值,ρnir(ref′)表示参考图像中像素在近红外波段的反射率值,
1):
2):分别确定每类的初始云阴影像素;以其中一类为例,在类a中初始阴影像素i的csi值
其中参数b是标准差倍数;
步骤3:匹配初始云和云阴影像素;
步骤3.1:云总是伴随着云阴影:利用云、云阴影和太阳之间的几何位置关系来进一步细化初始云和云阴影像素;设初始云像素i位于(x,y),根据下面的方程对应的云阴影像素为(x′,y′):
x′=x-hcloud_i×tanθ×sinφ(10)
y′=y+hcloud_i×tanθ×cosφ(11)
其中θ是太阳天顶角,φ是太阳方位角,这两者都由landsat图像元数据文件提供,hcloud_i表示位于图像(x,y)处此像素的云高;
步骤3.2:基于qa波段估算hcloud_i范围,假设hcloud_i在qa波段标记云像素的云高度范围内;为此,根据8邻域的连通性在qa波段生成云斑块和云阴影斑块;对于云斑块j的云高度hcloud_pj可以从云斑块和其对应的阴影斑块之间的水平距离进行近似估计denotedasdispj,表示为:
步骤3.3:计算dispj;
步骤a:将阴影斑块沿着云投影方向移动,当云与阴影斑块的重叠区域达到阴影斑块面积的三分之一则停止移动;此时移动的水平距离是假定为x1,阴影斑块与云斑块重叠的边界记为曲线ab;
步骤b:将曲线ab与阴影斑块对应的外边界a′b′进行匹配,然后基于两条曲线相似的形状的特性,通过线性插值使两条曲线具有相同的长度,并计算它们之间的相关系数;如果相关系数大于等于0.9,就认定匹配成功,此时两条曲线之间的水平距离表示为x2;最终,dispj是x1与x2的水平距离之和(图2);如果相关系数小于0.9,则计算qa波段里n个云斑的高度(hcloud_p1,..,hcloud_pn},则可能的云高范围hcloud_i为满足公式13条件的任意值:
为了避免hcloud_i受到异常值的影响,从{hcloud_p1,..,hcloud_pn}中删除了最大1%的云高值;auto-pcp允许初始云像素在可能的云高度范围内变化,从而通过使用不同的高度匹配所有初始云和云阴影像素;
若初始云阴影像素找到相匹配的云像素,则保留初始云阴影像素;如果初始云像素的投影像素被其它云覆盖;则从被覆盖的云像素开始投影并确定下一个投影像素,该过程一直持续到投影像素为云阴影像素或无云像素;如果最后投影的像素为云阴影像素,则保留该初始云像素,否则,初始云像素将被移除;此外,在图像边缘的一些初始云和阴影像素的投影位置可能在图像之外,保留这些初始的云和阴影像素;
步骤3.4:删除8邻域连接的像素集小于7个像素的小云斑块和阴影斑块。
2.如权利要求1所述的一种基于landsat光学遥感图像的云识别方法,其特征在于,所述步骤1公式5中a参数值设为2,步骤2公式10中b参数值设为2。