Применение растяжения декорреляции к многоканальному изображению
применяет растягивание декорреляции к 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)
и чтение справа налево, можно увидеть, что декорреляция растягивается:
Удаляет среднее значение из каждой полосы
Нормализует каждую полосу по ее стандартному отклонению (только метод на основе корреляции)
Поворачивает полосы в собственное пространство Corr или Cov
Применение растяжения S в собственном пространстве, оставляя изображение декоррелированным и нормализованным в собственном пространстве
Поворот назад к исходному диапазону-пространству, где полосы остаются декоррелированными и нормализованными
Масштабирует каждую полосу в соответствии с SIGMA_target
Восстанавливает среднее значение в каждой полосе.