empiricalLine

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

    Описание

    пример

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

    Примечание

    Эта функция требует Image Processing Toolbox™ Гиперспектральная Библиотека Обработки изображений. Можно установить Image Processing Toolbox Гиперспектральная Библиотека Обработки изображений из Add-On Explorer. Для получения дополнительной информации об установке дополнений, смотрите, Получают и Управляют Дополнениями.

    Примеры

    свернуть все

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

    hcube = hypercube('EO1H0440342002212110PY_cropped.hdr');

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

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

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

    hcube_toa = dn2radiance(hcube);

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

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

    Считайте коэффициент отражения спектральная подпись материала tar от библиотеки 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 objects. Axes object 1 with title Input Band contains an object of type image. Axes object 2 with title Output Band contains an object of type image. Axes object 3 with title Difference Image contains an object of type image.

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

    свернуть все

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

    Значения входного пикселя могут быть цифровыми числами, значениями сияния TOA или значениями коэффициента отражения TOA. Чтобы преобразовать гиперкуб, содержащий цифровые числа к гиперкубу, содержащему сияние TOA или данные о коэффициенте отражения TOA, используйте 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), или сияние TOA или коэффициент отражения TOA, с поверхностным коэффициентом отражения. Решение уравнения линейной регрессии обеспечивает усиление и значения смещения для каждой полосы. Это уравнение показывает, как эмпирическое усиление факторов линии и значения смещения вычисляются:

    ρsurfaceλ=mrλ+offset

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

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

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

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

    Ссылки

    [1] Робертс, D. A. Y. Ямагучи, и Р. Дж. П. Лайон. "Сравнение Различных Методов для Калибровки Данных о AIS". В Продолжениях Второго Бортового Семинара Анализа данных Спектрометра Обработки изображений, редактора Грегга Вейна и Александра Ф. Х. Гоеца, 21–30. Пасадена: Лаборатория реактивного движения, 1986.

    [2] Крюзе, F. A. К. С. Кирейн-Янг и Дж.В. Боардмен. "Минеральное Отображение в Капрайте, Невада со Спектрометром Обработки изображений С 63 каналами", Фотограмметрическое Техническое и Дистанционное зондирование 56, № 1 (январь 1990): 83–92.

    Смотрите также

    | | | | | |

    Введенный в R2020b