Улучшение многоспектральных цветных составных изображений

Этот пример показывает некоторый основной состав изображений и методы улучшения для использования с многоспектральными данными. Часто необходимо улучшить многоспектральное сияние или данные о коэффициенте отражения, чтобы создать изображение, которое подходит для визуальной интерпретации. Пример использует Landsat тематическое формирование изображений картопостроителя, покрывающее часть Парижа, Франция. Семь диапазонов хранятся в одном файле в формате LAN Эрдаса. Покрытые Концепции включают:

  • Чтение многоспектральных данных из файлов LAN Эрдаса

  • Построение цвета составляет композит от различных комбинаций полосы

  • Улучшение формирования изображений с контрастным фрагментом

  • Улучшение формирования изображений с фрагментом декорреляции

  • Используя scatterplots

Шаг 1: создайте составной объект истинного цвета из многоспектрального изображения

Файл LAN, paris.lan, содержит с 7 полосами 512 512 изображение Landsat. 128-байтовый заголовок сопровождается пиксельными значениями, которые являются полосой, чередованной с методической точностью (BIL) в порядке увеличения числа полосы. Они хранятся как 8-битные целые числа без знака в прямом порядке байтов.

Считайте полосы 3, 2, и 1 из файла LAN с помощью функции MATLAB® multibandread. Эти полосы покрывают видимую часть спектра. Когда они сопоставлены с красными, зелеными, и синими плоскостями, соответственно, изображения RGB, результатом является стандартный составной объект истинного цвета. Итоговый входной параметр к multibandread задает, который полосы читать, и в который порядок, так, чтобы можно было создать составной объект RGB на одном шаге.

truecolor = multibandread('paris.lan', [512, 512, 7], 'uint8=>uint8', ...
                          128,  'bil', 'ieee-le', {'Band','Direct',[3 2 1]});

Составной объект истинного цвета имеет очень мало контраста, и цвета являются несбалансированными.

f1 = figure;
imshow(truecolor);
figure(f1);
title('Truecolor Composite (Un-enhanced)')
text(size(truecolor,2), size(truecolor,1) + 15,...
  'Image courtesy of Space Imaging, LLC',...
  'FontSize', 7, 'HorizontalAlignment', 'right')

Шаг 2: используйте гистограммы, чтобы исследовать нерасширенный составной объект истинного цвета

Путем просмотра гистограммы красной полосы, например, вы видите, что данные сконцентрированы в небольшой части доступного динамического диапазона. Это - одна причина, почему составной объект истинного цвета кажется тусклым.

f2 = figure;
imhist(truecolor(:,:,1))
figure(f2);
title('Histogram of the Red Band (Band 3)')

Шаг 3: используйте корреляцию, чтобы исследовать нерасширенный составной объект истинного цвета

Другая причина тусклого внешнего вида составного объекта состоит в том, что видимые полосы высоко коррелируются друг с другом. 2D и scatterplots с тремя полосами являются отличным способом измерить степень корреляции среди диапазонов. Можно сделать их легко только при помощи plot.

r = truecolor(:,:,1);
g = truecolor(:,:,2);
b = truecolor(:,:,3);
f3 = figure;
plot3(r(:),g(:),b(:),'.')
grid('on')
xlabel('Red (Band 3)')
ylabel('Green (Band 2)')
zlabel('Blue (Band 1)')
figure(f3);
title('Scatterplot of the Visible Bands')

Явный линейный тренд "красного зеленого синего цвета" scatterplot указывает, что видимые полосы высоко коррелируются. Это помогает объяснить монохроматический вид нерасширенного составного объекта истинного цвета.

Шаг 4: улучшите составной объект истинного цвета с контрастным фрагментом

Когда вы используете imadjust чтобы применить линейный контрастный фрагмент к изображению составного объекта истинного цвета, поверхностные функции легче распознать.

stretched_truecolor = imadjust(truecolor,stretchlim(truecolor));
f4 = figure;
imshow(stretched_truecolor)
figure(f4);
title('Truecolor Composite after Contrast Stretch')

Шаг 5: проверяйте гистограмму после контрастного фрагмента

Гистограмма красной полосы после применения контрастного фрагмента показывает, что данные были распространены намного по больше доступного динамического диапазона.

f5 = figure;
imhist(stretched_truecolor(:,:,1))
figure(f5);
title('Histogram of Red Band (Band 3) after Contrast Stretch')

Шаг 6: улучшите составной объект истинного цвета с фрагментом декорреляции

Другой способ улучшить составной объект истинного цвета состоит в том, чтобы использовать фрагмент декорреляции, который улучшает цветоделение через очень коррелированые каналы. Используйте decorrstretch выполнять фрагмент декорреляции (сопровождаемый линейным контрастным фрагментом, как задано дополнительной парой значения параметров 'Tol' и 0.1).

decorrstretched_truecolor = decorrstretch(truecolor, 'Tol', 0.01);
f6 = figure;
imshow(decorrstretched_truecolor)
figure(f6);
title('Truecolor Composite after Decorrelation Stretch')

Снова, поверхностные функции стали намного более явно видимыми, но по-другому. Спектральные различия через сцену были преувеличены. Значимым примером является область зеленого цвета на левом крае, который кажется черным в расширенном от контраста составном объекте. Этой зеленой зоной является Bois de Boulogne, большой парк на западном ребре Парижа.

Шаг 7: проверяйте корреляцию после фрагмента декорреляции

Как ожидалось scatterplot после фрагмента декорреляции показывает сильное уменьшение в корреляции.

r = decorrstretched_truecolor(:,:,1);
g = decorrstretched_truecolor(:,:,2);
b = decorrstretched_truecolor(:,:,3);
f7 = figure;
plot3(r(:),g(:),b(:),'.')
grid('on')
xlabel('Red (Band 3)')
ylabel('Green (Band 2)')
zlabel('Blue (Band 1)')
figure(f7);
title('Scatterplot of the Visible Bands after Decorrelation Stretch')

Шаг 8: создайте и улучшите составной объект CIR

Так же, как с видимыми полосами, информация от полос Landsat, покрывающих невидимые фрагменты спектра, может быть просмотрена путем построения и улучшения изображений составного объекта RGB. Почти инфракрасная полоса (NIR) (Полоса 4) важна из-за высокого коэффициента отражения хлорофилла в этой части спектра. Еще более полезно, когда объединено с видимым красным и зеленым цветом (Полосы 3 и 2, соответственно) сформировать цветное инфракрасное излучение (CIR) составное изображение. Окрасьте инфракрасное излучение (CIR), составные объекты обычно используются, чтобы идентифицировать растительность или оценить ее состояние роста и/или здоровья.

Создайте составной объект CIR путем чтения из исходного файла LAN и создания изображения RGB, которое сопоставляет полосы 4, 3, и 2 к красному, зеленому цвету, и синий, соответственно.

CIR = multibandread('paris.lan', [512, 512, 7], 'uint8=>uint8', ...
                    128,  'bil', 'ieee-le', {'Band','Direct',[4 3 2]});

Даже при том, что почти инфракрасная полоса (NIR) (Полоса 4) менее коррелируется с видимыми полосами, чем видимые полосы друг с другом, фрагмент декорреляции делает много функций легче видеть.

stretched_CIR = decorrstretch(CIR, 'Tol', 0.01);
f8 = figure;
imshow(stretched_CIR)
figure(f8);
title('CIR after Decorrelation Stretch')

Свойство цветного инфракрасного излучения составляет композит, то, что они выглядят красными в областях с высокой растительностью (хлорофилл) плотность. Заметьте, что парк Bois de Boulogne является красным в составном объекте CIR, который сопоставим с его зеленым внешним видом в расширенном от декорреляции составном объекте истинного цвета.

См. также decorrstretch, imhist, imadjustmultibandread, stretchlim.

Смотрите также

| | | | |

Похожие темы