exponenta event banner

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

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

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

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

  • Улучшение изображения с помощью контрастного растяжения

  • Улучшение изображения с помощью растяжения декорреляции

  • Использование точечных диаграмм

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

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

Считывание полос 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.

Изучение гистограммы и скаттерплота нерасширенного композиционного материала Truecolor

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

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.

Другой причиной тусклого внешнего вида композита является то, что видимые полосы сильно коррелируют друг с другом. Двух- и трехполосные диаграммы рассеяния являются отличным способом измерения степени корреляции между спектральными полосами. Вы можете сделать их легко, просто используя plot. Линейный тренд красно-зелёно-синей рассеянной диаграммы указывает на то, что видимые полосы сильно коррелированы. Это помогает объяснить монохроматический вид нерасширенного триеколорного композита.

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.

Улучшенный композит Truecolor с контрастным растяжением

При использовании 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.

Улучшение Truecolor Composite с декорреляционным растяжением

Еще один способ улучшить трюкколорный композит - использовать декорреляционную растяжку, которая усиливает цветоделение по сильно коррелированным каналам. Использовать decorrstretch для выполнения растяжения декорреляции. Укажите необязательную пару имя-значение 'Tol',0.1 для выполнения линейного контрастного растяжения после декорреляционного растяжения. Опять же, черты поверхности стали гораздо более отчетливо видны, но по-другому. Спектральные различия в сцене были преувеличены. Заметным примером является область зеленого на левом краю, которая выглядит черной в контрастно растянутом композите. Эта зелёная зона - Буа-де-Булонь, большой парк на западном краю Парижа.

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.

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

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

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

См. также

| | | | |

Связанные темы