文档

decorrstretch

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

语法

S = decorrstretch (A)
S = decorrstretch(名称,值…)

描述

年代= decorrstretch (一个对象应用去关联拉伸——- - - - - -n——- - - - - -nBands图像一个并返回结果年代年代有相同的尺寸和级别一个,各波段的均值和方差与中相同一个一个可为RGB图像(nBands= 3)或可以有任意数量的光谱带。

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

例子

年代= decorrstretch (一个、名称、值……)对图像应用去相关拉伸一个,受制于可选的控制参数。

例子

全部折叠

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

将图像读入工作区。

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

应用去相关拉伸使用decorrstretch

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

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

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

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

输入参数

全部折叠

要拉伸的图像,指定为非稀疏的实数N-D数组。图像一个是多通道图像,如RGB图像(nBands= 3)或具有任意数量光谱波段的图像。

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

名称-值对的观点

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在单引号内(' ').可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

全部折叠

去关联方法,指定为“相关”协方差的“相关”利用带到带相关矩阵的特征分解。协方差的利用带间协方差矩阵的特征分解。

数据类型:字符|字符串

输出图像的带均值必须匹配的值,指定为实标量或类的向量和长度nBands.如果需要将值固定到输入/输出图像类的标准范围,则会影响结果。

targetmean必须有品位,但使用与输入图像中的像素相同的值。例如,如果一个是类uint8,然后127.5将是合理的价值。

数据类型:

输出图像的各个波段的标准差必须匹配的值,指定为实的、正的标量或类的向量和长度nBands.如果需要将值固定到输入/输出图像类的标准范围,则会影响结果。对于均匀(零方差)波段忽略。

targetsigma必须类,但使用相同的值和输入图像中的像素。例如,如果一个的类uint8,则50.0为合理值。

数据类型:

在去相关拉伸之后应用线性对比拉伸,指定为一类的一个或两个元素的实向量.覆盖的使用TargetMeanTargetSigma托尔与in的意思相同stretchlim,在那里Tol = [low_frachigh_fract]指定图像在低强度和高强度时饱和的比例。如果您指定托尔那么,作为标量值LOW_FRACT =托尔而且high_fact = 1 - tol,饱和等分在低和高强度。如果不指定的值托尔decorrstretch省略线性对比拉伸。

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

数据类型:

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

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

数据类型:

输出参数

全部折叠

年代有相同的尺寸和级别一个.每个波段的均值和方差年代和in一样吗一个

提示

  • 直接去相关(没有对比拉伸选项)的结果可能包括超出类支持的数值范围的值万博1manbetxuint8uint16(负值,或超过2 ^ 8 - 12 ^ 16 - 1分别)。在这些情况下,decorrstretch将其输出夹到所支持的范围。万博1manbetx

  • 为类decorrstretch的值时才夹住输出托尔,指定一个线性对比拉伸,然后对间隔进行夹紧[0 1]

  • 可选参数不相互作用,除了线性拉伸通常会改变带向平均值和带向标准差。因此,虽然您可以指定targetmean而且targetsigma随着托尔,它们的效果将被修改。

算法

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

b = T * (a - m) + m_target

一个而且bnBands1向量,T是一个nBands——- - - - - -nBands矩阵,而且m_targetnBands-by-1的向量

  • 包含图像中每个波段或指定的图像像素子集中的每个波段的平均值

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

线性变换矩阵T这取决于以下几点:

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

  • 每个波段的期望输出标准差。这可以用对角矩阵来表示,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 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)

从右到左,你可以看到去相关延伸:

  1. 从每个波段去除一个平均值

  2. 通过其标准偏差规范化每个波段(仅基于相关的方法)

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

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

  5. 旋转回原始的带空间,其中带保持去相关和归一化

  6. 缩放每个波段根据SIGMA_target

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

另请参阅

|

之前介绍过的R2006a

这个话题有帮助吗?