Улучшите цветоделение Используя протяжение декорреляции

Декорреляция, простирающаяся, улучшает цветоделение изображения со значительной корреляцией от полосы к полосе. Преувеличенные цвета улучшают визуальную интерпретацию и делают дискриминацию функции легче. Вы применяете декорреляцию, простирающуюся с decorrstretch функция. Смотрите, что Линейный Контраст Простирается о том, как добавить дополнительный линейный контрастный фрагмент во фрагмент декорреляции.

Количество цветных полос, NBANDS, в изображении обычно равняется трем. Но можно применить декорреляцию, простирающуюся независимо от количества цветных полос.

Значения исходного цвета изображения сопоставлены с новым набором значений цвета с более широкой областью значений. Интенсивность цвета каждого пикселя преобразовывается в цвет eigenspace NBANDS-by-NBANDS ковариационная или корреляционная матрица, расширенная, чтобы компенсировать отклонения полосы, затем преобразованные назад полосам исходного цвета.

Чтобы задать мудрую полосой статистику, можно использовать целое оригинальное изображение или с subset опция, любое выбранное подмножество его.

Простое протяжение декорреляции

В этом примере показано, как выполнить декорреляцию, простирающуюся к трем цветным полосам изображения. Цветная полоса scatterplot изображений показывает, как полосы декоррелируются и компенсируются.

Выполните фрагмент декорреляции

Считайте изображение из библиотеки изображений, доступных в 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')

Figure contains an axes. The axes with title Little Colorado River Image contains an object of type image.

imshow(B)
title('Little Colorado River Image After Decorrelation Stretch')

Figure contains an axes. The axes with title Little Colorado River Image After Decorrelation Stretch contains an object of type image.

Создайте цветную полосу Scatterplot

Сначала разделите три цветовых канала оригинального изображения.

[rA,gA,bA] = imsplit(A);

Разделите три цветовых канала изображения после протяжения декорреляции.

[rB,gB,bB] = imsplit(B);

Отобразите цвет scatterplot оригинального изображения. Затем отобразите цвет scatterplot изображения после протяжения декорреляции.

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 contains an axes. The axes with title Color Scatterplot Before Decorrelation Stretch contains an object of type line.

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')

Figure contains an axes. The axes with title Color Scatterplot After Decorrelation Stretch contains an object of type line.

Линейное контрастное протяжение

Добавление линейного контрастного фрагмента улучшает получившееся изображение дальнейшим расширением цветового диапазона. Следующий пример использует Tol опция, чтобы насыщать равные части изображения в высокой и низкой интенсивности. Без Tol опция, decorrstretch не применяет линейного контрастного фрагмента.

Смотрите stretchlim страница ссылки на функцию для больше о вычислении пределов насыщения.

Примечание

Можно применить линейный контрастный фрагмент как отдельную операцию после выполнения фрагмента декорреляции, с помощью stretchlim и imadjust. Эта альтернатива, однако, часто дает нижние результаты для uint8 и uint16 изображения, потому что пиксельные значения должны быть зафиксированы к [0 255] (или [0 65535]). 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'])

Figure contains an axes. The axes with title Little Colorado River After Decorrelation Stretch and Linear Contrast Stretch contains an object of type image.