Этот пример показывает некоторый основной состав изображений и методы улучшения для использования с многоспектральными данными. Часто необходимо улучшить многоспектральное сияние или данные о коэффициенте отражения, чтобы создать изображение, которое подходит для визуальной интерпретации. Пример использует 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')
Путем просмотра гистограммы красной полосы, например, вы видите, что данные сконцентрированы в небольшой части доступного динамического диапазона. Это - одна причина, почему составной объект истинного цвета кажется тусклым.
imhist(truecolor(:,:,1))
title('Histogram of the Red Band (Band 3)')
Другая причина тусклого внешнего вида составного объекта состоит в том, что видимые полосы высоко коррелируются друг с другом. 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')
Когда вы используете imadjust
чтобы применить линейный контрастный фрагмент к изображению составного объекта истинного цвета, поверхностные функции легче распознать.
stretched_truecolor = imadjust(truecolor,stretchlim(truecolor));
imshow(stretched_truecolor)
title('Truecolor Composite after Contrast Stretch')
Гистограмма красной полосы после применения контрастного фрагмента показывает, что данные были распространены намного по больше доступного динамического диапазона. Создайте гистограмму всех красных пиксельных значений в изображении при помощи imhist
функция.
imhist(stretched_truecolor(:,:,1))
title('Histogram of Red Band (Band 3) after Contrast Stretch')
Другой способ улучшить составной объект истинного цвета состоит в том, чтобы использовать фрагмент декорреляции, который улучшает цветоделение через очень коррелированые каналы. Используйте decorrstretch
выполнять фрагмент декорреляции. Задайте дополнительную пару "имя-значение" 'Tol',0.1
выполнять линейный контрастный фрагмент после фрагмента декорреляции. Снова, поверхностные функции стали намного более явно видимыми, но по-другому. Спектральные различия через сцену были преувеличены. Значимым примером является область зеленого цвета на левом крае, который кажется черным в расширенном от контраста составном объекте. Этой зеленой зоной является Bois de Boulogne, большой парк на западном ребре Парижа.
decorrstretched_truecolor = decorrstretch(truecolor,'Tol',0.01); imshow(decorrstretched_truecolor) title('Truecolor Composite after Decorrelation Stretch')
Как ожидалось 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')
Так же, как с видимыми полосами, информация от полос 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')
decorrstretch
| imadjust
| stretchlim
| imhist
| multibandread
| plot3