主要内容

decorrstretch

对多通道图像应用去相关拉伸

描述

年代= decorrstretch (一个对RGB或多光谱图像应用去相关拉伸一个并返回结果年代.各波段的均值和方差年代和in一样吗一个

去相关拉伸的主要目的是增强视觉效果。去相关拉伸是一种增强图像色差的方法。

例子

年代= decorrstretch (一个名称,值使用名称-值对来控制去相关拉伸的各个方面,例如每个波段的目标均值和标准偏差。

例子

全部折叠

这个例子展示了如何使用去相关拉伸通过夸大颜色差异来突出森林图像中的元素。

将映像读取到工作区中。

[X, map] = imread()“forest.tif”);

应用去相关拉伸使用decorrstretch

S = decorrstretch (ind2rgb (X,地图),“托尔”, 0.01);

显示原图和增强图。

图imshow (X,地图)标题(原始图像的

图中包含一个轴。标题为Original Image的轴包含一个类型为Image的对象。

图imshow (S)标题(“增强的图像”

图中包含一个轴。标题为Enhanced Image的轴包含一个类型为Image的对象。

输入参数

全部折叠

要增强的图像,指定为RGB图像或多光谱图像的大小——- - - - - -n——- - - - - -nBands.对于RGB图像,nBands= 3。

数据类型:||int16|uint8|uint16

名称-值对的观点

指定可选的逗号分隔对名称,值参数。的名字参数名和价值是对应的值。的名字必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家

例子:“模式”、“协方差的

方法,指定为逗号分隔的对,由“模式”以及下面的值。

  • “相关”-利用带间相关矩阵的特征分解。

  • 协方差的-利用带间协方差矩阵的特征分解。

数据类型:字符|字符串

输出频带的目标平均值,指定为逗号分隔的对,由“TargetMean”一个长度的实标量或向量nBands.默认情况下,TargetMean是一个1 -nBands包含每个频带的样本均值的向量,它保持了去相关拉伸前后的频带均值。

TargetMean一定要有档次,但使用与输入图像中的像素相同的值。例如,如果一个是类uint8,然后127.5会是一个合理的值。如果需要将值固定在输入/输出图像类的标准范围内,则会影响结果。

数据类型:

输出频带的目标标准差值,指定为由逗号分隔的对组成“TargetSigma”一个长度为正的标量或向量nBands.默认情况下,TargetSigma是一个1 -nBands包含每个波段的样本标准差的向量,它保持了去相关拉伸之前和之后的波段方差。对于均匀(零方差)波段,目标标准差被忽略。

TargetSigma必须类,但使用与输入图像中的像素相同的值。例如,如果一个的类uint8,然后50.0会是一个合理的值。

数据类型:

线性对比扩展紧随去相关扩展,指定为逗号分隔的对,由“托尔”一个数值标量或类的2元数值向量.指定值为托尔的值TargetMeanTargetSigma.如果不指定托尔,则默认为decorrstretch不执行线性对比拉伸。

托尔和in的意思一样吗stretchlim,在那里Tol = [LOW_FRACT HIGH_FRACT]指定在低强度和高强度下要饱和的图像的比例。如果您指定托尔作为标量值,那么LOW_FRACT =托尔HIGH_FRACT = 1 - Tol,在低强度和高强度下使等分量饱和。

小的调整托尔能强烈影响输出的视觉外观。

数据类型:

的子集一个用于计算频带平均值、协方差和相关,指定为包含两个像素下标阵列的单元阵列{rowsubs, colsubs}rowsubscolsubs分别包含行下标和列下标的大小匹配的向量或矩阵。

使用此选项可减少计算量,避免无效或非代表性的像素影响转换,或两者兼有。例如,您可以使用rowsubscolsubs排除有云层覆盖的地区。如果不指定,decorrstretch使用所有像素一个

数据类型:

输出参数

全部折叠

去相关拉伸图像,作为与输入图像大小和类相同的数字数组返回,一个

提示

  • 直线解相关(没有对比拉伸选项)的结果可能包括超出类支持的数值范围的值金宝appuint8uint16(负值,或值超过25565535分别)。在这些情况下,decorrstretch将输出固定在支持的范围内。金宝app

  • 为类decorrstretch仅在为的值时夹住输出托尔,指定线性对比度拉伸,然后夹紧间隔[0 1]

  • 可选参数不相互作用,除了线性拉伸通常改变带内均值和带内标准差。因此,当你可以指定TargetMeanTargetSigma随着托尔,其效果将被修改。

算法

去相关拉伸是一种线性的、像素级的操作,具体参数取决于实际和期望(目标)图像统计的值。向量一个在输入图像的每个频带中包含给定像素值的一个转换成相应的像素b在输出图像B如下:

b = T * (a - m) + m_target

一个bnBands1向量,T是一个nBands——- - - - - -nBands矩阵,m_targetnBands- × 1向量

  • 包含图像中每个频带的平均值,或指定的图像像素子集的平均值

  • m_target包含每个频带中期望的输出平均值。默认的选择是m_target = m

线性变换矩阵T取决于以下内容:

  • 图像的频带间样本协方差,或指定的图像子集的样本协方差(使用的相同子集),用matrix表示

  • 每个频带中期望的输出标准差。它可以用一个对角矩阵表示,SIGMA_target.默认的选择是SIGMA_target =σ,在那里σ是包含各波段样本标准差的对角线矩阵。σ应该从相同的像素计算,被用于,意思很简单:

    SIGMA(k,k) =√(Cov(k,k), k = 1,…nBands)

σ,SIGMA_targetnBands——- - - - - -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进入表达式b

b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)

b = m_target + SIGMA_target V S V' * (a - m)

从右到左阅读,你可以看到去相关拉伸:

  1. 从每个频带中移除平均值

  2. 用标准偏差对每个波段进行归一化(仅用相关法)

  3. 将带旋转到特征空间相关系数

  4. 适用于一段年代在特征空间中,使图像去相关并在特征空间中归一化

  5. 旋转回原来的频带空间,在那里频带保持去相关和标准化

  6. 根据缩放每个波段SIGMA_target

  7. 在每个波段恢复一个平均值。

另请参阅

|

之前介绍过的R2006a