exponenta event banner

empiricalLine

Эмпирическая линейная калибровка гиперспектральных данных

    Описание

    пример

    newhcube = empiricalLine(hcube,imgSpectra,fieldSpectra,fieldWL) выполняет эмпирическую линейную калибровку гиперспектральных данных, hcube. Функция вычисляет эмпирические линейные коэффициенты, чтобы форсировать спектральные данные изображения, imgSpectra, для соответствия спектрам отражения поля, fieldSpectra, с длинами волн fieldWL. Дополнительные сведения см. в разделе Алгоритмы.

    Примечание

    Для выполнения этой функции требуется библиотека гиперспектральных изображений Toolbox™ обработки изображений. Можно установить библиотеку гиперспектральных изображений панели инструментов обработки изображений из проводника надстроек. Дополнительные сведения об установке надстроек см. в разделе Получение надстроек и управление ими.

    Примеры

    свернуть все

    Считывание гиперспектральных данных в рабочую область. Эти данные поступают от датчика EO-1 Hyperion с значениями пикселей в цифровых числах.

    hcube = hypercube('EO1H0440342002212110PY_cropped.hdr');

    Удаление поврежденных полос из входных данных.

    hcube = removeBands(hcube,'BandNumber',find(~hcube.Metadata.BadBands));

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

    hcube_toa = dn2radiance(hcube);

    Выберите пиксель с низким значением яркости в качестве целевого пикселя и сохраните значение пикселя в виде массива ячеек. Пиксель принадлежит смоляной области входных данных.

    targetPixel = hcube_toa.DataCube(100,86,:);
    imgSpec = {permute(targetPixel,[3 1 2])};

    Считывайте спектральную характеристику отражения смоляного материала из библиотеки ECOSTRESS.

    filename = 'manmade.road.tar.solid.all.0099uuutar.jhu.becknic.spectrum.txt';
    info = readEcostressSig(filename);

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

    refSpec = {info.Reflectance};
    refWL = {info.Wavelength};

    Выполните эмпирическую линейную калибровку гиперспектральных данных значения излучения.

    hcube_empirical = empiricalLine(hcube_toa,imgSpec,refSpec,refWL);

    Проверьте результаты, выбрав одно и то же изображение полосы из некалиброванного гиперкуба цифровых номеров и откалиброванного гиперкуба. В целях визуализации масштабируйте значения двух изображений в диапазоне [0, 1]. Вычислите абсолютное значение разности между масштабированными изображениями полосы.

    inputBand = rescale(hcube.DataCube(:,:,159));
    outputBand = rescale(hcube_empirical.DataCube(:,:,159));
    diffBand = abs(inputBand-outputBand);

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

    figure('Position',[0 0 700 400])
    subplot('Position',[0 0 0.25 0.9])
    imagesc(inputBand)
    title('Input Band')
    axis off
    subplot('Position',[0.3 0 0.25 0.9])
    imagesc(outputBand)
    axis off
    title('Output Band')
    subplot('Position',[0.6 0 0.25 0.9])
    imagesc(diffBand)
    axis off
    title('Difference Image')
    colormap gray     

    Figure contains 3 axes. Axes 1 with title Input Band contains an object of type image. Axes 2 with title Output Band contains an object of type image. Axes 3 with title Difference Image contains an object of type image.

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

    свернуть все

    Входные гиперспектральные данные, указанные как hypercube объект. DataCube имущества hypercube объект сохраняет гиперспектральный куб данных.

    Входные значения пикселей могут быть цифровыми числами, значениями излучения ТОА или значениями отражения ТОА. Для преобразования гиперкуба, содержащего цифровые номера, в гиперкуб, содержащий данные о излучении ТОА или отражении ТОА, используйте dn2radiance или dn2reflectance функция, соответственно.

    Спектральные данные изображения, заданные как массив N-by-1 ячеек. N - количество пикселей или полей, используемых при эмпирической калибровке линий. Каждая ячейка содержит C-by-1 числовой вектор, где C - количество гиперспектральных полос, присутствующих в hcube.

    Спектры отражения поля, заданные как массив N-by-1 ячеек. N - количество пикселей или полей, используемых при эмпирической калибровке линий. Каждая ячейка содержит вектор отражений поля. Векторы могут варьироваться по размеру между ячейками, но длина вектора в каждой ячейке fieldSpectra и fieldWL должно совпадать.

    Длина волны спектров отражения поля в нанометрах, заданная в виде матрицы N-by-1 ячеек. N - количество пикселей или полей, используемых при эмпирической калибровке линий. Каждая ячейка содержит вектор P-by-1 длин волн поля различной длины. Длина вектора в каждой ячейке fieldSpectra и fieldWL должно совпадать.

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

    свернуть все

    Калиброванные гиперспектральные данные, возвращенные как hypercube объект или 3-D числовой массив, совместимый с входными данными, inputData. Тип данных числового вывода: single. Когда входные данные в inputData имеет тип данных double, то исправленные данные также относятся к типу данных double. В противном случае исправленные данные имеют тип данных single.

    Алгоритмы

    empiricalLine функция выполняет линейную регрессию для каждой полосы, чтобы приравнять цифровое число (DN), или световое излучение ТОА, или светоотражение ТОА, с поверхностным отражением. Решение уравнения линейной регрессии обеспечивает значения усиления и смещения для каждой полосы. Это уравнение показывает, как вычисляются эмпирические коэффициенты усиления и смещения:

    δsurfaceλ = m + смещение

    Коэффициент усиления (m) и значения смещения (смещение) являются неизвестными параметрами в эмпирическом линейном уравнении. λ - известное значение отражательной способности поверхности эталонного материала во входных гиперспектральных данных (известных как эталонные спектры поля). - измеренное значение для опорного материала во входных гиперспектральных данных (известных как спектральные данные изображения). Измеренное значение может быть цифровым числом, излучением ТОА или отражением ТОА.

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

    empiricalLine функция автоматически производит повторную выборку спектров входного поля в соответствии с выбранными длинами волн данных в hcube.

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

    Ссылки

    [1] Робертс, Д. А., Я. Ямагути и Р. Дж. П. Лион. «Сравнение различных методов калибровки данных АИС». В трудах второго семинара по анализу данных спектрометра аэрофотосъемки, ред. Грегг Вейн и Александр Ф. Х. Гетц, 21-30. Пасадина: Лаборатория реактивного движения, 1986 год.

    [2] Крузе, Ф. А., К. С. Киереин-Янг и Дж. У. Бордман. «Минеральное Отображение в Cuprite, Невада со Спектрометром Отображения С 63 каналами», Фотограмметрическое Техническое и Дистанционное зондирование 56, № 1 (январь 1990): 83-92.

    Представлен в R2020b