文档

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.如果需要将值固定在输入/输出图像类的标准范围内,则会影响结果。

目标均值一定是一流的,但使用与输入图像中的像素相同的值。例如,如果一个是类uint8,然后127.5将是合理的价值。

数据类型:

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

目标西格玛必须类,但在输入图像中使用相同的值和像素。例如,如果一个他是一流的uint8,则和50.0是合理值。

数据类型:

在去相关拉伸之后应用线性对比拉伸,指定为类的一或二元素实向量. 覆盖使用TargetMeanTargetSigma托尔和in的意思相同担架,在那里Tol = [low_fract high_fract]指定图像在低强度和高强度下饱和的比例。如果您指定托尔作为标量值,那么LOW_FRACT =托尔High_fract = 1 - tol,在低强度和高强度下饱和相同的组分。如果没有指定值托尔decorrstretch省略线性对比拉伸。

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

数据类型:

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

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

数据类型:

输出参数

全部折叠

年代一个.每个波段的均值和方差年代和in一样吗一个

提示

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

  • 为类decorrstretch仅在提供值时箝位输出托尔,指定一个线性对比度拉伸,然后夹紧到间隔[0 1]

  • 除了线性拉伸通常会改变频带平均值和频带标准差外,可选参数没有相互作用。因此,当您可以指定目标均值目标西格玛随着托尔,其效果将被修改。

算法

解相关拉伸是一种线性、像素级操作,其中特定参数取决于实际和期望(目标)图像统计信息的值。向量一个在输入图像的每个波段中包含一个给定像素的值一个转换为相应的像素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(k,k)=sqrt(Cov(k,k),k=1,…,nband)

σ,SIGMA_targetnBands——- - - - - -nBands,矩阵也是如此科尔λ,V下面的定义。

计算的第一步T是对协方差矩阵进行特征分解吗或者相关矩阵

Corr = inv(SIGMA) * Cov * inv(SIGMA)

  • 在基于相关的方法中,科尔分解为:Corr = V LAMBDA V'

  • 在协方差法中,分解为:Cov = V LAMBDA V'

λ是特征值和的对角矩阵吗V正交矩阵也变换吗科尔λ

下一步是计算每个频带的拉伸因子,即相应特征值的平方根反比。定义对角矩阵很方便年代含有拉伸因子的,如:

S(k,k) = 1 /√(LAMBDA(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_目标+SIGMA_目标VS'*(a-m)

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

  1. 从每个波段移除平均值

  2. 按其标准偏差对每个波段进行归一化(仅基于相关的方法)

  3. 将带旋转到的特征空间科尔

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

  5. 旋转回原始带空间,其中带保持非相关和标准化

  6. 根据每个波段重新调整SIGMA_target

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

另请参阅

|

之前介绍过的R2006a

这个话题有用吗?