このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
decorrstretch
無相関ストレッチをマルチチャネル イメージに適用
説明
例
入力引数
出力引数
ヒント
(コントラスト ストレッチオプションを使用しない) 直線無相関の結果には、
uint8
クラスまたはuint16
クラスでサポートされている数値範囲外の値 (負の値、あるいは255
または65535
をそれぞれ超える値) が含まれることがあります。そのような場合、decorrstretch
はサポートされている範囲に出力を固定します。double
クラスについては、線形コントラスト ストレッチを指定してから区間[0 1]
に固定するTol
の値を与えた場合にのみ、decorrstretch
は出力を固定します。オプションのパラメーターは相互に影響しません。ただし、線形ストレッチでは通常、帯域の平均と帯域の標準偏差の両方が変更されます。したがって、
TargetMean
およびTargetSigma
をTol
と共に指定はできますが、それらの効果は修正されます。
アルゴリズム
無相関ストレッチは、特定のパラメーターが実際のイメージの統計と目的の (ターゲット) イメージ統計の値によって決まる、ピクセル単位の線形処理です。入力イメージ A
の各帯域において、与えられたピクセルの値を含むベクトル a
は、次のように、出力イメージ B
の対応するピクセル b
に変換されます。
b = T * (a - m) + m_target
.
a
および b
は nBands
行 1 列のベクトル、T
は nBands
行 nBands
列の行列、m
および m_target
は nBands
行 1 列のベクトルであり、以下のようになります。
m
には、イメージ内、または指定したイメージ ピクセルのサブセット内の各帯域の平均が含まれます。m_target
には、各帯域で望まれる出力の平均が含まれます。既定の選択はm_target = m
です。
線形変換行列 T
は、以下によって決まります。
行列
Cov
で表される、イメージの帯域間のサンプル共分散、または指定したイメージのサブセット (m
に使用されるのと同じサブセット) の帯域間のサンプル共分散。各帯域で望まれる出力標準偏差。これは便宜上、対角行列
SIGMA_target
で表されます。既定の選択はSIGMA_target = SIGMA
です。ここで、SIGMA
は各帯域の標本標準偏差を含む対角行列です。SIGMA
は、m
およびCov
に使用されたものと同じサンプル ピクセルから、次のように計算されます。SIGMA(k,k) = sqrt(Cov(k,k), k = 1,..., nBands)
.
Cov
、SIGMA
および SIGMA_target
は、以下で定義される行列 Corr
、LAMBDA
および V
と同様、nBands
行 nBands
列です。
T
を計算するには、まず共分散行列 Cov
または次の相関行列のいずれかの固有値分解を実行します。
Corr = inv(SIGMA) * Cov * inv(SIGMA)
.
相関に基づくメソッドの場合、
Corr
は次のように分解されます。Corr = V LAMBDA V'
共分散に基づくメソッドの場合、
Cov
は次のように分解されます。Cov = V LAMBDA V'
LAMBDA
は固有値の対角行列であり、V
は Corr
と Cov
のいずれかを LAMBDA
に変換する直交行列です。
次の手順は、各帯域のストレッチ係数の計算です。これは、対応する固有値の逆平方根です。次のように、ストレッチ係数を含む対角行列 S
を定義すると便利です。
S(k,k) = 1 / sqrt(LAMBDA(k,k))
.
最後に、行列 T
が以下のいずれかによって計算されます。
T = SIGMA_target V S V' inv(SIGMA)
(相関に基づくメソッド)
または
T = SIGMA_target V S V'
(共分散に基づくメソッド)
帯域分散が一様である場合、2 つのメソッドで同じ結果が導き出されます。
T
を、以下のように、b
の式に代入します。
b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)
または
b = m_target + SIGMA_target V S V' * (a - m)
右から順に式を見ていくと、無相関ストレッチによって以下の処理が行われることがわかります。
各帯域から平均を削除する
各帯域をその標準偏差によって正規化する (相関に基づくメソッドの場合のみ)
帯域を
Corr
またはCov
の固有空間へと回転させるイメージを固有空間で無相関化および正規化されたままにして、ストレッチ
S
を固有空間で適用する回転して元の帯域空間に戻す。ただし、帯域は無相関化および正規化されたままになっている
SIGMA_target
に従って各帯域を再スケールする平均を各帯域に戻す