anomalyRX

Обнаружьте аномалии с помощью детектора Тростника-Xiaoli

    Описание

    пример

    rxScore = anomalyRX(inputData) обнаруживает аномальные пиксели в гиперспектральных данных с помощью детектора Тростника-Xialoi (RX). Детектор RX вычисляет счет к каждому пикселю как расстояние Mahalanobis между пикселем и фоном. Более высокий счет указывает на вероятную аномалию. Фон характеризуется спектральным средним значением и ковариацией куба данных. Для получения дополнительной информации о вычислении счета и обнаружении аномалий, см. Алгоритмы.

    Примечание

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

    Примеры

    свернуть все

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

    Считайте гиперспектральные данные, содержащие аномальные пиксели в рабочую область.

    hcube = hypercube('indian_pines.dat');

    Найдите аномальные пиксели во входе гиперспектральными данными при помощи детектора RX. Детектор ищет пиксели с различием в высокой интенсивности в гомогенной области.

    rxScore = anomalyRX(hcube);

    Уменьшайте динамический диапазон значений баллов RX путем перемасштабирования их к области значений [0, 255].

    rxScore = im2uint8(rescale(rxScore));

    Отобразите карту счета RX. Пиксели с высоким счетом RX являются, вероятно, аномальными пикселями.

    figure
    imagesc(rxScore)
    colorbar

    Вычислите и постройте кумулятивное распределение вероятностей значений баллов RX.

    count = imhist(rxScore);
    pdf = count/prod(size(rxScore,[1 2]));
    cdf = cumsum(pdf(:));
    figure
    plot(cdf)
    xlabel('RX Score')
    ylabel('Cumulative Probability Values')

    Установите содействующее значение доверия к 0,998. Выберите первый счет RX со значением кумулятивного распределения вероятностей, больше, чем коэффициент доверия как порог. Этот порог представляет счет RX, выше которого пиксель является аномалией с доверием на 99,8 процентов.

    confCoefficient = 0.998;
    rxThreshold = find(cdf > confCoefficient,1);

    Примените пороговую обработку, чтобы обнаружить аномальные пиксели со счетом RX, больше, чем вычисленный порог. Результатом является бинарное изображение, в котором присвоены аномальные пиксели, значение интенсивности 1 и другие пиксели присвоено 0.

    bw = rxScore > rxThreshold;

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

    rgbImg  = colorize(hcube,'Method','rgb');
    B = imoverlay(rgbImg,bw);

    Отобразите и бинарное изображение и наложенное изображение.

    fig = figure('Position',[0 0 800 400]);
    axes1 = axes('Parent',fig,'Position',[0 0.1 0.5 0.8]);
    imagesc(bw,'Parent',axes1);
    title('Detected Anomalous Pixels')
    axis off
    colormap gray
    axes2 = axes('Parent',fig,'Position',[0.5 0.1 0.5 0.8]);
    imagesc(B,'Parent',axes2)
    title('Overlaid Image');
    axis off  

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

    свернуть все

    Введите гиперспектральные данные в виде 3-D числового массива или hypercube объект. Если вход является 3-D числовым массивом размера M-by-N-by-C, функция читает его как гиперспектральный куб данных M-by-N пиксели с диапазонами C и вычисляет счет RX. Если входом является hypercube объект, функция читает куб данных, сохраненный в DataCube свойство и затем вычисляет счет RX. Гиперспектральный куб данных должен быть действительным и неразреженным.

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

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

    свернуть все

    Выведите счет RX к каждому пикселю в гиперспектральном кубе данных, возвращенном как матрица размера M-by-N, то же самое как пространственные размерности входных данных.

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

    Алгоритмы

    Счет RX к каждому пикселю вычисляется как

    DRX=(rμC)TΣC1(rμC)

    r является пикселем под тестом, и μ C и Σ C являются спектральным средним значением и ковариацией соответственно. Аномальные пиксели обычно имеют высокие баллы RX.

    Можно оценить, что порог от кумулятивного распределения вероятностей баллов RX далее настраивает аномальное пиксельное обнаружение. Смотрите Обнаруживание Аномальных Пикселей в Гиперспектральных Данных Используя пример Детектора RX.

    Ссылки

    [1] Тростник, I.S., и Кс. Ю. “Адаптивное Обнаружение CFAR Нескольких-полос Оптического Шаблона с Неизвестным Спектральным Распределением”. Транзакции IEEE на Акустике, Речи и Обработке сигналов 38, № 10 (октябрь 1990): 1760–70. https://doi.org/10.1109/29.60107.

    [2] Чейн-Ай Чанг и Шаошань Чанг. “Обнаружение аномалии и Классификация для Гиперспектрального Формирования изображений”. Транзакции IEEE на Геонауке и Дистанционном зондировании 40, № 6 (июнь 2002): 1314–25. https://doi.org/10.1109/TGRS.2002.800280.

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

    | |

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