exponenta event banner

scatteringTransform

Вейвлет 2-D преобразование рассеяния

Описание

s = scatteringTransform(sf,im) возвращает вейвлет 2-D преобразование рассеяния im для sf, сеть рассеяния изображения. im - вещественно-значная матрица 2-D или матрица 3-D. Если im равно 3-D, размер третьего измерения должен быть равен 3. Размеры строк и столбцов im должны соответствовать ImageSize значение sf. Продукция s - массив ячеек с элементами Nfb + 1, где Nfb - количество банков фильтров в сети рассеяния. Nfb равно количеству элементов в QualityFactors имущество sf. Эквивалентно, количество элементов в s равно количеству порядков в сети рассеяния. Каждый элемент s является таблицей MATLAB ®.

пример

[s,u] = scatteringTransform(sf,im) также возвращает коэффициенты вейвлет-скалограммы для im. Продукция u - массив ячеек с элементами Nfb + 1, где Nfb - количество банков фильтров в сети рассеяния. Nfb равно количеству элементов в QualityFactors имущество sf. Эквивалентно, количество элементов в u равно количеству порядков в сети рассеяния. Каждый элемент u является таблицей MATLAB.

Примеры

свернуть все

Этот пример показывает, что коэффициенты рассеяния являются низкочастотными версиями коэффициентов скалограммы.

Загрузите образ RGB. Отображение красного канала.

im = imread('circle.jpg');
size(im)
ans = 1×3

   256   256     3

figure
imagesc(im(:,:,1))
colormap gray;

Figure contains an axes. The axes contains an object of type image.

Для изображений RGB размер третьего измерения должен быть равен 3. Размеры строк и столбцов изображения необходимо указывать только при создании сети рассеяния. Создайте сеть рассеяния для применения к изображению и выполните преобразование рассеяния.

sf = waveletScattering2('ImageSize',[256 256],'InvarianceScale',32,...
    'NumRotations',[8 8]);
[S,U] = scatteringTransform(sf,im);

Поля изображения и коэффициента в S и U являются M-by-N-by-3. Размеры M-на-N постоянны только в изображениях рассеяния, поскольку функция масштабирования имеет фиксированную полосу пропускания, в то время как вейвлеты имеют разные полосы пропускания.

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

[~,~,~,filterparams] = sf.filterbank();
theta = filterparams{1}.rotations;
figure
for k = 1:numel(theta)
    subplot(2,1,1)
    imagesc(U{2}.coefficients{k}(:,:,1));
    axis xy
    title(['$$\Theta =  $$' num2str(theta(k))],'Interpreter','Latex');
    subplot(2,1,2)
    imagesc(S{2}.images{k}(:,:,1)); 
    axis xy
    pause(1)
end

Figure contains 2 axes. Axes 1 with title $$\Theta = $$2.7489 contains an object of type image. Axes 2 contains an object of type image.

Приведенный выше for-loop приводит к анимации, идентичной описанной ниже.

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

свернуть все

Сеть рассеяния вейвлетного изображения, заданная как waveletScattering2 объект.

Входное изображение, указанное как вещественно-значная матрица 2-D или матрица 3-D. Если im является 3-D, im предполагается цветным изображением в цветовом пространстве RGB, и размер третьего размера должен быть равен 3. Размеры строк и столбцов im должны соответствовать ImageSize имущество sf.

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

свернуть все

Коэффициенты рассеяния, возвращаемые в виде массива ячеек. s - массив ячеек с элементами Nfb + 1, где Nfb - количество банков фильтров в сети рассеяния. Nfb равно количеству элементов в QualityFactors имущество sf. Эквивалентно, количество элементов в s равно количеству порядков в сети рассеяния. Каждый элемент s - таблица MATLAB со следующими переменными:

Коэффициенты рассеяния, возвращаемые в виде массива ячеек. Каждый элемент images является матрицей M-by-N или M-by-N-by-3.

Путь рассеяния, используемый для получения коэффициентов рассеяния, возвращаемых в виде вектора строки. Каждый столбец path соответствует одному элементу пути. Скаляр 0 обозначает исходное изображение. Положительные целые числа в столбце Lth обозначают соответствующий вейвлет-фильтр в (L − 1) -м наборе фильтров. Вейвлет-полосовые фильтры упорядочены путем уменьшения центральной частоты.

Есть NumRotations вейвлеты на пару центральной частоты.

Полоса пропускания коэффициентов рассеяния, возвращаемая как скаляр. Полоса пропускания симметрична в направлениях x и y.

Base-2 логарифмическое разрешение коэффициентов рассеяния, возвращаемое как скаляр.

Коэффициенты скалограммы, возвращаемые в виде массива ячеек. u - массив ячеек с элементами Nfb + 1, где Nfb - количество банков фильтров в сети рассеяния. Nfb равно количеству элементов в QualityFactors имущество sf. Эквивалентно, количество элементов в u равно количеству порядков в сети рассеяния. Каждый элемент u - таблица MATLAB со следующими переменными:

Коэффициенты скалограммы, возвращаемые в виде массива ячеек. Каждый элемент coefficients является матрицей M-by-N или M-by-N-by-3.

Путь рассеяния, используемый для получения коэффициентов скалограммы, возвращаемых в виде вектора строки. Каждый столбец path соответствует одному элементу пути. Скаляр 0 обозначает исходное изображение. Положительные целые числа в столбце Lth обозначают соответствующий вейвлет-фильтр в (L − 1) -м наборе фильтров. Вейвлет-полосовые фильтры упорядочены путем уменьшения центральной частоты.

Есть NumRotations вейвлеты на пару центральной частоты.

Полоса пропускания коэффициентов скалограммы, возвращаемая как скаляр.

Base-2 логарифмическое разрешение коэффициентов рассеяния, возвращаемое как скаляр.

См. также

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