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

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

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

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

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

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

  • Используя scatterplots

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

Файл 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]});

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

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

Figure contains an axes. The axes with title Truecolor Composite (Un-Enhanced) contains 2 objects of type image, text.

Исследуйте Histogram и Scatterplot нерасширенного составного объекта истинного цвета

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

imhist(truecolor(:,:,1))
title('Histogram of the Red Band (Band 3)')

Figure contains 2 axes. Axes 1 with title Histogram of the Red Band (Band 3) contains an object of type stem. Axes 2 contains 2 objects of type image, line.

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

r = truecolor(:,:,1);
g = truecolor(:,:,2);
b = truecolor(:,:,3);

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

Figure contains an axes. The axes with title Scatterplot of the Visible Bands contains an object of type line.

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

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

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

Figure contains an axes. The axes with title Truecolor Composite after Contrast Stretch contains an object of type image.

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

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

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

Figure contains 2 axes. Axes 1 with title Histogram of Red Band (Band 3) after Contrast Stretch contains an object of type stem. Axes 2 contains 2 objects of type image, line.

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

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

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

Figure contains an axes. The axes with title Truecolor Composite after Decorrelation Stretch contains an object of type image.

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

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

r = decorrstretched_truecolor(:,:,1);
g = decorrstretched_truecolor(:,:,2);
b = decorrstretched_truecolor(:,:,3);

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

Figure contains an axes. The axes with title Scatterplot of the Visible Bands after Decorrelation Stretch contains an object of type line.

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

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

Figure contains an axes. The axes with title CIR after Decorrelation Stretch contains an object of type image.

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

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте