filterbank

Системные фильтры Shearlet

Описание

пример

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

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

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

пример

[psi,scale,shear,cone] = filterbank(sls) возвращает конусы частоты фильтров shearlet как K-by-1 массив ячеек символов. K является количеством shearlets включая фильтр 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'

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

psi = filterbank(sls);

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

cfs = sheart2(sls,X);

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

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

    41    41

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

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

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

[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'}

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

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

Постройте фильтр shearlet.

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

Постройте поддержки всей шкалы 2 фильтра shearlet параметрами сдвига, равными ±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

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

свернуть все

Система Shearlet в виде shearletSystem объект.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|

Введенный в R2019b