Декорреляционное растяжение улучшает цветоделение изображения со значительной полосно-полосовой корреляцией. Преувеличенные цвета улучшают визуальную интерпретацию и облегчают различение функций. Вы применяете декоративную растяжку с decorrstretch
функция. См. раздел «Линейная контрастная растяжка» о том, как добавить дополнительное линейное контрастное растяжение к декоративному растяжению.
Количество цветовых полос, NBANDS, в изображении обычно составляет три. Но можно применить декоративную растяжку независимо от количества цветовых полос.
Исходные значения цветов изображения сопоставляются с новым набором значений цветов с более широкой областью значений. Интенсивность цвета каждого пикселя преобразуется в пространство цвета NBANDS-by-NBANDS ковариации или матрицу корреляции, растянутую для выравнивания отклонений полосы, затем преобразованную обратно в исходные полосы цветов.
Чтобы определить полосовую статистику, можно использовать все оригинальное изображение или, с subset
опция, любой выбранный подмножество.
В этом примере показано, как выполнить декоративное растяжение до трех цветовых полос изображения. Цветовой ленточный рассеянный график изображений показывает, как полосы декоррелированы и выровнены.
Выполните Декоративную Растяжку
Чтение изображения из библиотеки изображений, доступных в imdata
папка. Этот пример использует изображение LANDSAT реки Литл-Колорадо. Изображение имеет семь полос, но только что прочитано в трех видимых цветах.
A = multibandread('littlecoriver.lan', [512, 512, 7], ... 'uint8=>uint8', 128, 'bil', 'ieee-le', ... {'Band','Direct',[3 2 1]});
Выполните декоративную растяжку.
B = decorrstretch(A);
Отобразите оригинальное изображение и обработанное изображение. Сравните два изображения. Оригинал имеет сильный фиолетовый (красно-голубоватый) оттенок, в то время как трансформированное изображение имеет несколько расширенную цветовую область значений.
imshow(A)
title('Little Colorado River Image')
imshow(B)
title('Little Colorado River Image After Decorrelation Stretch')
Создайте Color Band Scatterplot
Сначала разделите три цветовых канала оригинального изображения.
[rA,gA,bA] = imsplit(A);
Разделите три цветовых канала изображения после декоррелирования растяжения.
[rB,gB,bB] = imsplit(B);
Отобразите цветовой рассеянный график оригинального изображения. Затем отобразите цветовой рассеянный график изображения после декорреляционного растяжения.
figure plot3(rA(:),gA(:),bA(:),'.') grid on xlabel('Red (Band 3)') ylabel('Green (Band 2)') zlabel('Blue (Band 1)') title('Color Scatterplot Before Decorrelation Stretch')
figure plot3(rB(:),gB(:),bB(:),'.') grid on xlabel('Red (Band 3)') ylabel('Green (Band 2)') zlabel('Blue (Band 1)') title('Color Scatterplot After Decorrelation Stretch')
Добавление линейного контрастного растяжения улучшает полученное изображение за счет дальнейшего расширения цветовой области значений. В следующем примере используется Tol
опция насыщения равными долями изображения при высокой и низкой интенсивности. Без Tol
опция, decorrstretch
не применяет линейное контрастное растяжение.
См. stretchlim
страница с описанием функции для получения дополнительной информации о вычислении пределов насыщения.
Примечание
Линейное контрастное растяжение можно применить как отдельную операцию после выполнения декорреляционного растяжения, используя stretchlim
и imadjust
. Эта альтернатива, однако, часто дает низкие результаты для uint8
и uint16
изображения, поскольку значения пикселей должны быть зажаты до [0 255] (или [0 65535]). The Tol
опция в decorrstretch
обходит это ограничение.
Прочтите три видимых цветовых канала изображения LANDSAT реки Литтл-Колорадо.
A = multibandread('littlecoriver.lan', [512, 512, 7], ... 'uint8=>uint8', 128, 'bil', 'ieee-le', ... {'Band','Direct',[3 2 1]});
Применить декоративное растяжение, задавая линейное контрастное растяжение. Установка значения 'Tol'
0,01 преобразует преобразованную цветовую область значений в каждой полосе в нормализованный интервал между 0,01 и 0,99, насыщая 2%.
C = decorrstretch(A,'Tol',0.01); imshow(C) title(['Little Colorado River After Decorrelation Stretch and ',... 'Linear Contrast Stretch'])