decorrstretch
将去相关拉伸应用于多通道图像
语法
S = decorrstretch (A)
S = decorrstretch(名称,值…)
描述
例子
输入参数
输出参数
提示
直接去相关(没有对比拉伸选项)的结果可能包括超出类支持的数值范围的值万博1manbetx
uint8
或uint16
(负值,或超过2 ^ 8 - 1
或2 ^ 16 - 1
分别)。在这些情况下,decorrstretch
将其输出夹到所支持的范围。万博1manbetx为类
双
,decorrstretch
的值时才夹住输出托尔
,指定一个线性对比拉伸,然后对间隔进行夹紧[0 1]
.可选参数不相互作用,除了线性拉伸通常会改变带向平均值和带向标准差。因此,虽然您可以指定
targetmean
而且targetsigma
随着托尔
,它们的效果将被修改。
算法
去相关拉伸是一种线性的像素级操作,其中特定参数取决于实际和期望(目标)图像统计值。向量一个
包含输入图像的每个波段中给定像素的值一个
转换成对应的像素b
在输出图像B
如下:
b = T * (a - m) + m_target
.
一个
而且b
是nBands
1向量,T
是一个nBands
——- - - - - -nBands
矩阵,米
而且m_target
是nBands
-by-1的向量
米
包含图像中每个波段或指定的图像像素子集中的每个波段的平均值m_target
包含每个波段的期望输出平均值。默认选择是m_target = m
.
线性变换矩阵T
这取决于以下几点:
图像的带到带样本协方差,或指定图像的子集(与用于的相同子集)的带到带样本协方差
米
),用矩阵表示浸
每个波段的期望输出标准差。这可以用对角矩阵来表示,
SIGMA_target
.默认选择是SIGMA_target =σ
,在那里σ
是包含每个波段的样本标准差的对角矩阵。σ
应该从相同的像素被用来计算米
而且浸
,意思很简单:SIGMA(k,k) =√(Cov(k,k), k = 1,…nBands)
.
浸
,σ
,SIGMA_target
是nBands
——- - - - - -nBands
,如矩阵相关系数
,λ
,V
下面的定义。
这是计算的第一步T
是对协方差矩阵进行特征分解吗浸
或者说相关矩阵
Corr = inv(SIGMA) * Cov * inv(SIGMA)
.
在基于相关的方法中,
相关系数
分解:Corr = V LAMBDA V'
.在基于协方差的方法中,
浸
分解:Cov = V LAMBDA V'
.
λ
特征值的对角矩阵和V
变换的正交矩阵是吗相关系数
或浸
来λ
.
下一步是为每个波段计算一个拉伸因子,它是对应特征值的平方根的倒数。定义对角矩阵很方便年代
包含拉伸因子,使:
S(k,k) = 1 /√(λ (k,k))
.
最后,矩阵T
由任意一个计算
T = SIGMA_target V S V' inv(SIGMA)
(correlation-based方法)
或
T = SIGMA_target V S V'
(covariance-based方法)。
如果波段方差一致,这两种方法的结果是相同的。
替换T
变成for的表达式b
:
b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)
或
b = m_target + SIGMA_target V' * (a - m)
从右到左,你可以看到去相关延伸:
从每个波段去除一个平均值
通过其标准偏差规范化每个波段(仅基于相关的方法)
将带旋转到的特征空间
相关系数
或浸
适用于一段
年代
在特征空间中,让图像在特征空间中去相关和归一化旋转回原始的带空间,其中带保持去相关和归一化
缩放每个波段根据
SIGMA_target
在每个波段恢复一个平均值。