exponenta event banner

sid

Измерение спектрального подобия с использованием расхождения спектральной информации

    Описание

    пример

    score = sid(inputData,refSpectra) измеряет спектральное сходство между спектрами каждого пикселя в гиперспектральных данных inputData и указанные эталонные спектры refSpectra с использованием метода спектральной дивергенции информации (SID). Этот синтаксис используется для идентификации различных областей или материалов в гиперспектральном кубе данных.

    пример

    score = sid(testSpectra,refSpectra) измеряет спектральное сходство между указанными тестовыми спектрами testSpectra и эталонные спектры refSpectra с использованием метода SID. Этот синтаксис используется для сравнения спектральной сигнатуры неизвестного материала с эталонными спектрами или для вычисления спектральной изменчивости между двумя спектральными сигнатурами.

    Примечание

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

    Примеры

    свернуть все

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

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

     hcube = hypercube('jasperRidge2_R198.hdr');

    Укажите количество спектрально различающихся полос для идентификации в кубе данных.

    numEndmembers = 7;

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

    endmembers = nfindr(hcube,numEndmembers);

    Постройте график спектральных сигнатур конечных элементов.

    figure  
    plot(endmembers)   
    xlabel('Band Number')
    ylabel('Data Value')
    legend('Location','Bestoutside')

    Figure contains an axes. The axes contains 7 objects of type line.

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

    score = zeros(size(hcube.DataCube,1),size(hcube.DataCube,2),numEndmembers);
    for i= 1:numEndmembers
        score(:,:,i) = sid(hcube,endmembers(:,i));
    end

    Вычислите минимальное значение оценки из оценок расстояния, полученных для каждого спектра пикселей, относительно всех конечных элементов. Индекс каждой минимальной оценки идентифицирует спектр конечного элемента, которому спектр пикселя демонстрирует максимальное сходство. Значение индекса n в пространственном местоположении (x, y) в матрице оценки указывает, что спектральная сигнатура пикселя в пространственном местоположении (x, y) в кубе данных лучше всего соответствует спектральной сигнатуре n-го конечного элемента.

    [~,matchingIndx] = min(score,[],3);

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

    rgbImg = colorize(hcube,'Method','RGB');
    figure('Position',[0 0 1100 500])
    subplot('Position',[0 0.2 0.4 0.7])
    imagesc(rgbImg)
    axis off
    colormap default
    title('RGB Image of Hyperspectral Data')
    subplot('Position',[0.5 0.2 0.4 0.7])
    imagesc(matchingIndx);
    axis off
    title('Indices of Matching Endmembers')
    colorbar

    Figure contains 2 axes. Axes 1 with title RGB Image of Hyperspectral Data contains an object of type image. Axes 2 with title Indices of Matching Endmembers contains an object of type image.

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

    hcube = hypercube('jasperRidge2_R198.hdr');

    Найдите 10 конечных элементов гиперспектрального куба данных с помощью метода N-FINDR.

    numEndmembers = 10;
    endmembers = nfindr(hcube,numEndmembers);

    Первый конечный элемент рассматривается как опорный спектр, а остальные конечные элементы - как тестовый спектр. Вычислите оценку SID между опорным и тестовым спектрами.

    score = zeros(1,numEndmembers-1);
    refSpectrum = endmembers(:,1);
    for i = 2:numEndmembers
        testSpectrum = endmembers(:,i);
        score(i-1) = sid(testSpectrum,refSpectrum);
    end

    Найдите тестовый спектр, который демонстрирует максимальное сходство (минимальное расстояние) с эталонным спектром. Затем найдите тестовый спектр, который демонстрирует минимальное сходство (максимальное расстояние) с эталонным спектром.

    [minval,minidx] = min(score);
    maxMatch = endmembers(:,minidx);
    [maxval,maxidx] = max(score);
    minMatch = endmembers(:,maxidx);

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

    figure
    plot(refSpectrum)
    hold on
    plot(maxMatch,'k')
    plot(minMatch,'r')
    legend('Reference spectrum','Minimum match test spectrum','Maximum match test spectrum',...
           'Location','Southoutside');
    title('Similarity Between Spectra')
    annotation('textarrow',[0.3 0.3],[0.4 0.52],'String',['Min score: ' num2str(minval)])
    annotation('textarrow',[0.6 0.6],[0.4 0.55],'String',['Max score: ' num2str(maxval)])
    xlabel('Band Number')
    ylabel('Data Values')

    Figure contains an axes. The axes with title Similarity Between Spectra contains 3 objects of type line. These objects represent Reference spectrum, Minimum match test spectrum, Maximum match test spectrum.

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

    свернуть все

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

    Тестовые спектры, указанные как вектор С-элемента. Тестовые спектры представляют собой спектральную сигнатуру неизвестной области или материала.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

    свернуть все

    Оценка SID, возвращенная как скаляр или матрица. Выходные данные представляют собой

    • scalar - если указать testSpectra входной аргумент. Функция сопоставляет тестовую спектральную сигнатуру с эталонной спектральной сигнатурой и возвращает скалярное значение. И тестовый, и эталонный спектры должны быть векторами одинаковой длины.

    • matrix - если указать inputData входной аргумент. Функция сопоставляет спектральную сигнатуру каждого пикселя в кубе данных с эталонной спектральной сигнатурой и возвращает матрицу. Если куб данных имеет размер M-на-N-на-C, а эталонные спектры являются вектором длины C, то выходная матрица имеет размер M-на-N.

    Меньший балл SAM указывает на сильное совпадение между тестовой сигнатурой и эталонной сигнатурой.

    Типы данных: single | double

    Подробнее

    свернуть все

    Расхождение спектральной информации

    Метод спектральной информационной дивергенции (SID) вычисляет спектральное сходство на основе дивергенции между распределениями вероятности двух спектров. Пусть r и t являются опорным и тестовым спектрами соответственно. Вычислите значения распределения для эталонных спектров как:

    qi=ri∑i=1Cri.

    .

    Рассчитайте значения распределения для тестовых спектров как:

    pi=ti∑i=1Cti.

    .

    Затем вычисляют значение SID, используя распределения вероятностей опорного и тестового спектров:

    SID=∑i=1Cpilog (piqi) +∑i=1Cqilog (qipi).

    Ссылки

    [1] Чейн-И Чанг. «Информационно-теоретический подход к спектральной изменчивости, сходству и дискриминации для анализа гиперспектральных изображений». IEEE Transactions on Information Theory 46, No. 5 (август 2000): 1927-32. https://doi.org/10.1109/18.857802.

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