empiricalLine

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

    Описание

    пример

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

    Примечание

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

    Примеры

    свернуть все

    Чтение гиперспектральных данных в рабочую область. Эти данные с 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 объект. The DataCube свойство hypercube объект хранит кубик гиперспектральных данных.

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

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

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

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

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

    свернуть все

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

    Алгоритмы

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

    ρsurfaceλ=mrλ+offset

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

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

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

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

    Ссылки

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

    [2] Kruse, F. A., K. S. Kierein-Young, and J.W. Boardman. «Минеральное отображение в Куприте, Невада с 63-Channel спектрометром», фотограмметрическая инженерия и дистанционное зондирование 56, № 1 (январь 1990 года): 83-92.

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