主要内容

decorrstretch

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

描述

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

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

例子

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

例子

全部折叠

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

将图像读入工作区。

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

应用解相关拉伸使用decorrstretch

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

显示原始图像和增强图像。

图imshow(X,map)原始图像的

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

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

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

输入参数

全部折叠

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

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

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

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

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

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

  • 协方差的—使用带间协方差矩阵的特征分解。

数据类型:字符|字符串

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

TargetMean必须是一流的,但使用与输入图像中的像素相同的值。例如,如果一个是类uint8,然后127.5会是一个合理的值。如果需要将值限制在输入/输出图像类的标准范围内,则可能会影响结果。

数据类型:

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

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

数据类型:

在去相关拉伸之后的线性对比拉伸,指定为由逗号分隔的对组成“托尔”以及类的数字标量或双元素数字向量。指定的值托尔的值TargetMeanTargetSigma。如果不指定托尔,那么默认decorrstretch不执行线性对比拉伸。

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

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

数据类型:

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

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

数据类型:

输出参数

全部折叠

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

提示

  • 直接解相关(不带对比度扩展选项)的结果可能包括超出类支持的数值范围的值万博1manbetxuint8uint16(负值,或值超过25565535分别)。在这些情况下,decorrstretch将其输出夹紧到支持的范围。万博1manbetx

  • 为类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取决于以下内容:

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

  • 每个波段的期望输出标准差。这个很方便地用对角矩阵表示,SIGMA_target。默认选项为SIGMA_target = SIGMA,在那里σ是包含每个波段样本标准差的对角矩阵。σ应该从使用的相同像素计算,意思很简单:

    SIGMA(k,k) = sqrt(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变成表达式forb

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之前引入

另请参阅

|