exponenta event banner

filterbank

Фильтры системы Sharlet

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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);

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

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);

Различные чешуи могут иметь различное количество ножниц. Шкалы в системе sharlet находятся в диапазоне от 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);

Постройте график фильтра «sharlet».

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.

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

свернуть все

Система Sharlet, указанная как shearletSystem объект.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

|

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