Примените фрагмент декорреляции к многоканальному изображению
применяет фрагмент декорреляции к RGB или многоспектральному изображению S = decorrstretch(A)A и возвращает результат в S. Среднее значение и отклонение в каждой полосе S эквивалентны в A.
Основная цель фрагмента декорреляции является визуальным улучшением. Декорреляция, простирающаяся, является способом улучшить цветовые различия в изображении.
пары "имя-значение" использования, чтобы управлять аспектами фрагмента декорреляции, такими как целевое среднее и стандартное отклонение каждой полосы.S = decorrstretch(A,Name,Value)
Результаты прямой декорреляции (без контрастной опции фрагмента) могут включать значения, которые выходят за пределы числовой области значений, поддержанной классом uint8 или uint16 (отрицательные величины или значения, превышающие 255 или 65535, соответственно). В этих случаях, decorrstretch фиксирует его выход к поддерживаемой области значений.
Для класса double, decorrstretch фиксирует выход только, когда вы вводите значение для Tol, определение линейного контрастного фрагмента, сопровождаемого путем зажима к интервалу [0 1].
Дополнительные параметры не взаимодействуют, за исключением того, что линейный фрагмент обычно изменяет и мудрые полосой средние значения и мудрые полосой стандартные отклонения. Таким образом, в то время как можно задать 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 зависит от следующего:
Выборочная ковариация от полосы к полосе изображения, или подмножества изображения, которое вы задаете (то же подмножество, как используется в m), представленный матричным Cov
Желаемое выходное стандартное отклонение в каждой полосе. Это удобно представлено диагональной матрицей, SIGMA_target. Выбором по умолчанию является SIGMA_target = SIGMA, где SIGMA диагональная матрица, содержащая демонстрационное стандартное отклонение каждой полосы. SIGMA должен быть вычислен из тех же пикселей, которые использовались в m и Cov, что означает просто что:
SIGMA(k,k) = sqrt(Cov(k,k), k = 1,..., nBands).
Cov\sigma, и SIGMA_target nBands- nBands, как матрицы Corr\lambda, и V, заданный ниже.
Первый шаг в вычислении 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' (основанный на ковариации метод).
Эти два метода дают к идентичным результатам, если отклонения полосы универсальны.
Замена T в выражение для b:
b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)
или
b = m_target + SIGMA_target V S V' * (a - m)
и читая справа налево, вы видите, что декорреляция простирается:
Удаляет среднее значение из каждой полосы
Нормирует каждую полосу ее стандартным отклонением (только основанный на корреляции метод)
Вращает полосы в eigenspace Corr или Cov
Применяет фрагмент S в eigenspace, оставляя изображение декоррелируемым и нормированным в eigenspace
Вращается назад к исходному пробелу полосы, где полосы остаются декоррелируемыми и нормированными
Перешкалы каждая полоса согласно SIGMA_target
Восстанавливает среднее значение в каждой полосе.