paths

Рассеивание путей

Описание

spaths = paths(sf) возвращает рассеивающиеся пути для всех порядков рассеивающейся среды, sf. spaths массив ячеек таблиц MATLAB® с элементами n, где n является количеством порядков в рассеивающейся среде.

пример

[spaths,npaths] = paths(sf) возвращает количество путей в каждом порядке как n-by-1 вектор-столбец, где n является количеством порядков в рассеивающейся среде. Сумма элементов npaths общее количество рассеивающихся путей.

Примеры

свернуть все

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

Создайте среду рассеивания изображений с размером изображения 256 256 и шкала инвариантности, равная минимуму размера изображения. OptimizePath по умолчанию значение равняется 1 (true).

sf = waveletScattering2('ImageSize',[256 256],'InvarianceScale',128)
sf = 
  waveletScattering2 with properties:

             ImageSize: [256 256]
       InvarianceScale: 128
          NumRotations: [6 6]
        QualityFactors: [1 1]
             Precision: "single"
    OversamplingFactor: 0
          OptimizePath: 1

Получите количество рассеивающихся путей в каждом порядке. Отобразите общее количество рассеивающихся путей.

[spaths,npaths] = paths(sf);
sum(npaths)
ans = 391

Установите OptimizePath значение среды к false. Отобразите общее количество рассеивающихся путей. Для этой среды рассеивающееся преобразование не сокращает количество путей, чтобы вычислить на основе фактора пропускной способности.

sf.OptimizePath = false;
[spaths,npaths] = paths(sf);
sum(npaths)
ans = 571

В этом примере показано, как OptimizePath свойство может влиять на рассеивающиеся пути, которые включают определенный вейвлет.

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

sf = waveletScattering2
[~,psifilters,f] = filterbank(sf);
[spaths,npaths] = paths(sf);
disp(['Total Number of Paths: ',num2str(sum(npaths))])
sf = 

  waveletScattering2 with properties:

             ImageSize: [128 128]
       InvarianceScale: 64
          NumRotations: [6 6]
        QualityFactors: [1 1]
             Precision: 'single'
    OversamplingFactor: 0
          OptimizePath: 1

Total Number of Paths: 241

Отобразитесь количество вейвлета просачивается каждый набор фильтров.

disp(['Filter Bank 1: ',num2str(size(psifilters{1},3))]);
disp(['Filter Bank 2: ',num2str(size(psifilters{2},3))]);
Filter Bank 1: 24
Filter Bank 2: 24

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

waveletA = 14;
disp(['Center Frequency: ',num2str(f{1}(waveletA,:))]);
ind = find(spaths{3}.path(:,2)==waveletA);
spaths{3}(ind,:)
Center Frequency: 0.08119    0.046875

ans =

  6x1 table

        path     
    _____________

    0    14    19
    0    14    20
    0    14    21
    0    14    22
    0    14    23
    0    14    24

Постройте центральные частоты фильтров вейвлета на путях.

plot(f{1}(waveletA,1),f{1}(waveletA,2),'k^');
xlabel('f_x')
ylabel('f_y')
hold on
waveletBs = spaths{3}.path(ind,3);
plot(f{2}(waveletBs,1),f{2}(waveletBs,2),'bx');
grid on
legend('First Filter Bank Wavelet','Second Filter Bank Wavelets',...
    'Location','northeastoutside')

Теперь установите OptimizePath свойство рассеивающейся среды sf к false. Получите фильтры вейвлета, сосредоточьте пространственные частоты и рассеивающиеся пути среды.

sf.OptimizePath = false
[~,psifilters2,f2] = filterbank(sf);
[spaths2,npaths2] = paths(sf);
disp(['Total Number of Paths: ',num2str(sum(npaths2))])
sf = 

  waveletScattering2 with properties:

             ImageSize: [128 128]
       InvarianceScale: 64
          NumRotations: [6 6]
        QualityFactors: [1 1]
             Precision: 'single'
    OversamplingFactor: 0
          OptimizePath: 0

Total Number of Paths: 385

Выберите тот же вейвлет как выше. Чтобы подтвердить это - тот же вейвлет, отобразите его пространственную центральную частоту. Используйте spaths найти все трехэлементные пути, которые включают вейвлет. Поскольку OptimizePath установлен в false, фильтр вейвлета имеет больше дочерних элементов.

waveletA = 14;
disp(['Center Frequency: ',num2str(f2{1}(waveletA,:))]);
ind = find(spaths2{3}.path(:,2)==waveletA);
spaths2{3}(ind,:)
Center Frequency: 0.08119    0.046875

ans =

  12x1 table

        path     
    _____________

    0    14    13
    0    14    14
    0    14    15
    0    14    16
    0    14    17
    0    14    18
    0    14    19
    0    14    20
    0    14    21
    0    14    22
    0    14    23
    0    14    24

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

figure
plot(f2{1}(waveletA,1),f2{1}(waveletA,2),'k^');
xlabel('f_x')
ylabel('f_y')
hold on
waveletBs = spaths2{3}.path(ind,3);
plot(f2{2}(waveletBs,1),f2{2}(waveletBs,2),'bx');
grid on
legend('First Filter Bank Wavelet','Second Filter Bank Wavelets',...
    'Location','northeastoutside')

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

свернуть все

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

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

свернуть все

Рассеивание путей всех порядков рассеивающейся среды, возвращенной как массив ячеек таблиц MATLAB. spaths имеет элементы n, где n является количеством порядков в рассеивающейся среде.

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

Количество рассеивающихся путей в каждом порядке рассеивающейся среды. npaths no-by-1 вектор-столбец, где no является количеством порядков в рассеивающейся среде. Сумма элементов npaths общее количество рассеивающихся путей.

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

|

Введенный в R2019a

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