radiance2Reflectance

Преобразуйте сияние в отражение

Описание

пример

newhcube = radiance2Reflectance(hcube) преобразует значения пикселей куба гиперспектральных данных из значений излучения в значения отражающей способности. Функция возвращает новое hypercube объект и пиксельные значения куба данных представляют верхнюю часть отражающей способности атмосферы (TOA). Для получения дополнительной информации см. «Отражение TOA».

newhcube = radiance2Reflectance(hcube,'BlockSize',blocksize) задает размер блока для блочной обработки куба гиперспектральных данных с помощью аргумента пары "имя-значение" 'BlockSize'.

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

Для примера, radiance2Reflectance(hcube,'BlockSize',[50 50]) разделяет вход изображение на неперекрывающиеся блоки размера 50 на 50, а затем вычисляет значения отражающей способности для пикселей в каждом блоке.

Примечание

Чтобы выполнить обработку блоков путем определения 'BlockSize' Аргумент пары "имя-значение", у вас должен быть MATLAB R2021a или более поздний релиз.

Примечание

Эта функция требует библиотеки Image Processing Toolbox™ гиперспектральной визуализации. Можно установить библиотеку Image Processing Toolbox Hyperspectral Imaging Library из Add-On Explorer. Дополнительные сведения об установке дополнений см. в разделе Получение и управление Дополнений.

Примеры

свернуть все

Чтение гиперспектральных данных в рабочую область.

input = hypercube('EO1H0440342002212110PY_cropped.hdr');

Определите плохие номера спектральных полос с помощью BadBands параметр в метаданных.

bandNumber = find(~input.Metadata.BadBands);

Удалите плохие спектральные полосы из куба данных.

input = removeBands(input,'BandNumber',bandNumber);

Преобразуйте цифровые числа в значения излучения при помощи dn2radiance функция.

hcube = dn2radiance(input);

Преобразуйте значения радиации в значения отражающей способности при помощи radiance2Reflectance функция.

newhcube = radiance2Reflectance(hcube);

Считайте и отобразите 80-й спектральный диапазон в вход излучении и выходе данные отражательной способности.

radianceBand = hcube.DataCube;
reflectanceBand = newhcube.DataCube;
band = 80;

figure
subplot(1,2,1)
imagesc(radianceBand(:,:,band))
axis off
title('Radiance Band')
subplot(1,2,2)
imagesc(reflectanceBand(:,:,band))
title('Reflectance Band')

colormap(gray)
axis off    

Figure contains 2 axes. Axes 1 with title Radiance Band contains an object of type image. Axes 2 with title Reflectance Band contains an object of type image.

Входные параметры

свернуть все

Входные гиперспектральные данные, заданные как hypercube объект. The DataCube свойство hypercube объект хранит кубик гиперспектральных данных. Значения пикселей куба данных должны быть значениями излучения, определяющими количество излучения от поверхности, которую отображают. Можно преобразовать пиксельные значения в цифровых числах в значения излучения при помощи dn2radiance функция.

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

  • Если на blocksize значение слишком мало, использование памяти уменьшается за счет увеличения времени выполнения.

  • Если на blocksize значение является большим или равным входом размеру изображения, время выполнения уменьшается за счет увеличения использования памяти.

Пример: 'BlockSize',[20 20] задает размер каждого блока данных 20 на 20.

Выходные аргументы

свернуть все

Вывод гиперспектральных данных, возвращенный как hypercube объект. Значения пикселей в кубе выходных данных являются верхними значениями отражающей способности атмосферы (TOA).

Подробнее о

свернуть все

Отражение ТОА

Значения отражающей способности TOA задают отношение излучения, отраженного поверхностью, к излучению, падающему на поверхность.

Reflectance ρλ=πd2LλESUNλθE

d - расстояние земля-солнце в астрономических модулях, ESUNλ - среднее солнечное излучение для каждой спектральной полосы, и θE - угол возвышения Солнца.

- спектральное излучение, вычисленное как:

Radiance Lλ=(DN×Gain)+Bias

Gain и Bias являются значениями усиления и смещения для каждой спектральной полосы соответственно. The Metadata свойство hypercube объект содержит значения коэффициента усиления и смещения.

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