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に従って各帯域を再スケールする平均を各帯域に戻す

