decorrstretch
应用去相关拉伸多通道图像
描述
例子
输入参数
输出参数
提示
直接解相关(不带对比度扩展选项)的结果可能包括超出类支持的数值范围的值万博1manbetx
uint8
或uint16
(负值,或值超过255
或65535
分别)。在这些情况下,decorrstretch
将其输出夹紧到支持的范围。万博1manbetx为类
双
,decorrstretch
只在为提供值时才钳住输出托尔
,指定线性对比度拉伸,然后对间隔进行箝位[0 1]
。可选参数不会相互作用,除了线性拉伸通常会改变带向均值和带向标准差。因此,虽然您可以指定
TargetMean
和TargetSigma
随着托尔
,它们的效果将被修改。
算法
去相关拉伸是一种线性的、逐像素的操作,其中特定参数取决于实际和期望的(目标)图像统计值。向量一个
包含输入图像的每个波段中给定像素的值一个
转换成相应的像素b
输出图像中B
如下:
b = T * (a - m) + m_target
。
一个
和b
是nBands
1向量,T
是一个nBands
——- - - - - -nBands
矩阵,米
和m_target
是nBands
- × 1的向量
米
包含图像中或指定的图像像素子集中每个波段的平均值m_target
包含每个波段所需的输出平均值。默认选项为M_target = m
。
线性变换矩阵T
取决于以下内容:
图像的频带间样本协方差,或指定的图像子集的频带间样本协方差(用于的子集相同)
米
),用矩阵表示浸
每个波段的期望输出标准差。这个很方便地用对角矩阵表示,
SIGMA_target
。默认选项为SIGMA_target = SIGMA
,在那里σ
是包含每个波段样本标准差的对角矩阵。σ
应该从使用的相同像素计算米
和浸
,意思很简单:SIGMA(k,k) = sqrt(Cov(k,k), k = 1,…nBands)
。
浸
,σ
,SIGMA_target
是nBands
——- - - - - -nBands
,矩阵也是如此相关系数
,λ
,V
,定义如下。
计算的第一步T
是对协方差矩阵进行特征分解吗浸
或者相关矩阵
Corr = inv(SIGMA) * Cov * inv(SIGMA)
。
在基于相关性的方法中,
相关系数
分解:Corr = V V'
。在协方差法中,
浸
分解:Cov = V 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
变成表达式forb
:
b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)
或
b = m_target + SIGMA_target V S V' * (a - m)
从右向左读,你可以看到解相关延伸:
从每个波段去除平均值
按标准偏差对每个波段进行归一化(仅基于相关性的方法)
旋转带到的特征空间
相关系数
或浸
应用拉伸
年代
在特征空间中,使图像去相关并在特征空间中归一化旋转回原始频带空间,其中频带保持去相关和归一化
重新缩放每个波段
SIGMA_target
恢复每个波段的平均值。