filterbank

Фильтры шестеренчатой системы

Описание

пример

psi = filterbank(sls) возвращает преобразования Фурье фильтров шестеренки, заданные системой шестеренок sls как 3-D массив с реальным значением. Размер массива M -by- N -by- K, где M и N являются значениями двухэлементного вектора-строки ImageSize sls. K - количество срезов, включая lowpass, K = numshears(sls) + 1.

[psi,scale] = filterbank(sls) возвращает масштабные параметры фильтров shearlet как целочисленный вектор K -by-1. K - количество срезов, включая lowpass, K = numshears(sls) + 1.

[psi,scale,shear] = filterbank(sls) возвращает параметры сдвига фильтров shearlet как целочисленный вектор K -by-1. K - количество срезов, включая lowpass, K = numshears(sls) + 1.

пример

[psi,scale,shear,cone] = filterbank(sls) возвращает частотные конусы фильтров shearlet как массив символов ячеек K -by-1. K - количество срезов, включая lowpass, K = numshears(sls) + 1.

Примеры

свернуть все

Загрузка изображения. Создайте систему shearlet, которая может использоваться с изображением.

load clown
sls = shearletSystem('ImageSize',size(X))
sls = 
  shearletSystem with properties:

         ImageSize: [200 320]
         NumScales: 4
    PreserveEnergy: 0
     TransformType: 'real'
    FilterBoundary: 'periodic'
         Precision: 'double'

Получите фильтры резьбы, заданные системой резьбы.

psi = filterbank(sls);

Получите преобразование shearlet изображения.

cfs = sheart2(sls,X);

Подтвердите, что размер третьей размерности psi равен размеру третьей размерности cfs.

[size(psi,3) size(cfs,3)]
ans = 1×2

    41    41

Создайте комплексную систему шестеренок для 256 на 256 изображений с усечёнными контурами и четырьмя шкалами.

sls = shearletSystem('TransformType','complex',...
    'ImageSize',[256 256],...
    'FilterBoundary','truncated',...
    'NumScales',4);

Получите фильтры резьбы и их геометрические интерпретации.

[psi,scale,shear,cone] = filterbank(sls);

Различные шкалы могут иметь разное количество сдвигов. Шкалы в системе shearlet варьируются от 0 до 3 включительно. Найдите область значений сдвигов на шкалу.

for k=0:3
    ind = find(scale==k);
    fprintf('scale: %d  shear range: [%d:%d]\n',...
        k,min(shear(ind)),max(shear(ind)))
end
scale: 0  shear range: [-1:1]
scale: 1  shear range: [-2:2]
scale: 2  shear range: [-2:2]
scale: 3  shear range: [-3:3]

Отображение уникальных меток конуса частоты.

unique(cone)
ans = 5x1 cell
    {'B'}
    {'L'}
    {'R'}
    {'T'}
    {'X'}

Найдите резьбовой фильтр в шкале 2 с параметром сдвига, равным 1 и поддержка которого находится в 'R' частотный конус.

vScale = 2;
vShear = 1;
vCone = 'R';
ind = (scale'==vScale)&(shear'==vShear)&([cone{:}]==vCone);
shFilter = psi(:,:,ind);

Постройте график резьбового фильтра.

omegax = -1/2:1/256:1/2-1/256;
omegay = omegax;
surf(omegax,flip(omegay),shFilter,'EdgeColor','none')
view(0,90)
xlabel('\omega_x')
ylabel('\omega_y')
str = sprintf('Shearlet Filter: Scale %d / Shear %d / Cone %c',...
    vScale,vShear,vCone);
title(str)
axis equal
axis tight

Figure contains an axes. The axes with title Shearlet Filter: Scale 2 / Shear 1 / Cone R contains an object of type surface.

Постройте графики поддержек всех резьбовых фильтров шкалы 2 с параметрами сдвига, равными ±2. Области, где фильтр поддерживает перекрытие, имеют максимальную яркость.

vScale = 2;
vShear = 2;
ind = find((scale==vScale).*(abs(shear)==vShear));
tmp = zeros(size(psi,1),size(psi,2));
for k=1:length(ind)
    tmp = tmp+(psi(:,:,ind(k))~=0);
end
surf(omegax,flip(omegay),double(tmp),'EdgeColor','none')
view(0,90)
xlabel('\omega_x')
ylabel('\omega_y')
str = sprintf('Filter Supports: Scale %d / Abs(Shear) %d',...
    vScale,vShear);
title(str)
axis equal
axis tight
colormap gray
colorbar

Figure contains an axes. The axes with title Filter Supports: Scale 2 / Abs(Shear) 2 contains an object of type surface.

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

свернуть все

Система резьбы, заданная как shearletSystem объект.

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

свернуть все

Преобразования Фурье фильтров шестеренки, заданные системой шестеренок, возвращаются как 3-D реальный массив. Размер массива M -by- N -by- K, где M и N являются первым и вторым элементами значения ImageSize sls. K - количество срезов, включая lowpass, K = numshears(sls) + 1. Первый элемент в третьей размерности psi соответствует lowpass. Последующие элементы соответствуют шестеренкам.

Тип данных psi соответствует значению Precision системы shearlet.

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

Масштабные параметры фильтров shearlet, заданные системой shearlet, возвращаются как K -by-1 целочисленный вектор. K - количество срезов, включая lowpass, K = numshears(sls) + 1. Первый элемент scale, − 1, соответствует lowpass. Остальные элементы scale соответствуют резьбовым фильтрам.

Тип данных scale соответствует значению Precision системы shearlet.

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

Параметры сдвига фильтров сдвига, заданные системой сдвига, возвращаются как K -by-1 целочисленный вектор. K - количество срезов, включая lowpass, K = numshears(sls) + 1. Значения сдвига в масштабе S варьироваться от −ceil(2^(S/2)) на ceil(2^(S/2)) включительно. Первый элемент shear, 0, соответствует lowpass. Остальные элементы shear обозначает ножницы для соответствующих фильтров резьбы.

Тип данных shear соответствует значению Precision системы shearlet.

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

Частотные конусы фильтров shearlet, заданные системой shearlet, возвращаются как K ячеек-на-1 массив символов. K - количество срезов, включая lowpass, K = numshears(sls) + 1. Первый элемент cone, 'X', соответствует lowpass. Остальные элементы cone являются частотными конусами, в которых соответствующие резьбовые фильтры имеют свою поддержку.

Для комплексных шестерен плоскость частот разделена на четыре конуса: 'R' (справа), 'T' (верхняя часть), 'L' (слева), и 'B' (снизу). Для реальных шестерен частотные конусы 'H' (горизонтальный) и 'V' (вертикальный).

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

|

Введенный в R2019b