dn2reflectance

Преобразуйте цифровой номер в отражательный

Описание

пример

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

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

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

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

Примечание

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

Примечание

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

Примеры

свернуть все

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

hcube = hypercube('EO1H0440342002212110PY_cropped.hdr');

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

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

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

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

Преобразуйте цифровые числа в верхние отражения атмосферы (TOA). Значениями пикселей в кубе выходных данных являются отражения TOA.

newhcube = dn2reflectance(hcube);

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

inputBand = hcube.DataCube;
reflectanceBand = newhcube.DataCube;
band = 80;
figure
subplot(1,2,1)
imagesc(inputBand(:,:,band))
title('Input Band')
axis off
subplot(1,2,2)
imagesc(reflectanceBand(:,:,band))
title('Reflectance Band')
axis off
colormap gray   

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

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

свернуть все

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

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

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

Вычисление значений отражения TOA из DN

Учитывая цифровое число (DN), отражение TOA вычисляется с помощью коэффициента отражения (RGain) и смещения отражения (ROffset) каждой спектральной полосы в кубе данных.

Reflectance ρλ=(DN×RGain)+ROffset

Значения коэффициента усиления отражения и смещения отражения каждой спектральной полосы сохраняются в заголовочном файле.

В качестве альтернативы значения отражения TOA могут быть оценены из цифровых чисел (DN) с помощью этих двух шагов:

  1. Вычислите значения излучения из цифрового номера (DN).

    Radiance Lλ=(DN×Gain)+Bias

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

  2. Вычислите значения отражения TOA из значений сияния.

    Reflectance ρλ=πd2LλESUNλθE

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

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