dddtree2

Двойное дерево и 2D вейвлет с удвоенной плотностью преобразовывают

Синтаксис

wt = dddtree2(typetree,x,level,fdf,df)
wt = dddtree2(typetree,x,level,fname)
wt = dddtree2(typetree,x,level,fname1,fname2)

Описание

пример

wt = dddtree2(typetree,x,level,fdf,df) возвращает typetree дискретное преобразование вейвлета 2D входного изображения, x, вниз чтобы выровняться, level. Вейвлет преобразовывает, использует разложение (анализ) фильтры, fdf, для первого уровня и аналитических фильтров, df, для последующих уровней. Поддерживаемый вейвлет преобразовывает, критически выбранный DWT, действительное ориентированное двойное дерево с удвоенной плотностью, объединяют ориентированное двойное дерево, действительное ориентированное двойное дерево, с удвоенной плотностью, и объединяет ориентированный двойной древовидный вейвлет с удвоенной плотностью, преобразовывают. Критически выбранный DWT является разложением набора фильтров в ортогональном или биоортогональном (безызбыточном) основании. Другой вейвлет преобразовывает, сверхдискретизированные наборы фильтров с отличающимися степенями направленной селективности.

пример

wt = dddtree2(typetree,x,level,fname) использование фильтры, заданные fname, чтобы получить вейвлет, преобразовывает. Допустимые спецификации фильтра зависят от типа вейвлета, преобразовывают. Смотрите dtfilters для деталей.

пример

wt = dddtree2(typetree,x,level,fname1,fname2) использование, которое фильтры, заданные в fname1 для первой стадии двойного древовидного вейвлета, преобразовывают и фильтры, заданные в fname2 для последующих этапов двойного древовидного вейвлета, преобразовывает. Определение различных фильтров для этапа 1 допустимо и необходимо только, когда typetree является 'realdt', 'cplxdt', 'realdddt' или 'cplxdddt'.

Примеры

свернуть все

Визуализируйте шесть направленных вейвлетов действительного ориентированного двойного древовидного вейвлета, преобразовывают.

Создайте аналитические фильтры первой стадии для этих двух деревьев.

  Faf{1} = [0      0
   -0.0884   -0.0112
    0.0884    0.0112
    0.6959    0.0884
    0.6959    0.0884
    0.0884   -0.6959
   -0.0884    0.6959
    0.0112   -0.0884
    0.0112   -0.0884
         0         0];
Faf{2} = [ 0.0112  0
    0.0112         0
   -0.0884   -0.0884
    0.0884   -0.0884
    0.6959    0.6959
    0.6959   -0.6959
    0.0884    0.0884
   -0.0884    0.0884
         0    0.0112
         0   -0.0112];

Создайте аналитические фильтры для последующих этапов анализа мультиразрешения.

af{1} = [ 0.0352   0
         0         0
   -0.0883   -0.1143
    0.2339         0
    0.7603    0.5875
    0.5875   -0.7603
         0    0.2339
   -0.1143    0.0883
         0         0
         0   -0.0352];

af{2} = [0   -0.0352
         0         0
   -0.1143    0.0883
         0    0.2339
    0.5875   -0.7603
    0.7603    0.5875
    0.2339         0
   -0.0883   -0.1143
         0         0
    0.0352         0];

Получите действительное двойное древовидное преобразование вейвлета изображения нулей вниз к уровню 4.

J = 4;
L = 3*2^(J+1);
N = L/2^J;
x = zeros(2*L,3*L);
wt = dddtree2('realdt',x,J,Faf,af);

Вставьте 1 в одно положение этих шести поддиапазонов и инвертируйте вейвлет, преобразовывают.

wt.cfs{4}(N/2,N/2+0*N,1,1) = 1;
wt.cfs{4}(N/2,N/2+1*N,2,1) = 1;
wt.cfs{4}(N/2,N/2+2*N,3,1) = 1;
wt.cfs{4}(N/2+N,N/2+0*N,1,2) = 1;
wt.cfs{4}(N/2+N,N/2+1*N,2,2) = 1;
wt.cfs{4}(N/2+N,N/2+2*N,3,2) = 1;
xrec = idddtree2(wt);

Визуализируйте шесть направленных вейвлетов.

imagesc(xrec);
colormap gray; axis off;
title('Real Oriented Dual-Tree Wavelets')

Получите преобразование вейвлета с удвоенной плотностью изображения.

Загрузите изображение и получите вейвлет с удвоенной плотностью, преобразовывают.

load xbox;
imagesc(xbox); colormap gray;

wt = dddtree2('ddt',xbox,1,'filters1');

Визуализируйте диагональные детали в двух поддиапазонах HH вейвлета.

HH1 = wt.cfs{1}(:,:,5);
HH2 = wt.cfs{1}(:,:,8);
subplot(211)
imagesc(HH1);
colormap gray;
subplot(212);
imagesc(HH2);

Получите комплексное двойное древовидное преобразование вейвлета изображения. Покажите, что комплексный двойной древовидный вейвлет преобразовывает, может обнаружить два различных диагональных направления.

Загрузите изображение и получите комплексный двойной древовидный вейвлет, преобразовывают.

load xbox;
imagesc(xbox); colormap gray;

wt = dddtree2('cplxdt',xbox,1,'FSfarras','qshift10');

Получите и отобразите мнимые части этих 2 деревьев.

waveletcfs = wt.cfs{1};
subplot(211)
imagesc(waveletcfs(:,:,3,1,2));
colormap gray;
subplot(212)
imagesc(waveletcfs(:,:,3,2,2));

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

свернуть все

Тип разложения вейвлета, заданного как один из 'dwt', 'ddt', 'realdt', 'cplxdt', 'realdddt' или 'cplxdddt'. Тип, 'dwt', производит критически выбранный (безызбыточный) дискретный вейвлет, преобразовывают. Другие типы разложения производят сверхдискретизированный вейвлет, преобразовывает. 'ddt' производит вейвлет с удвоенной плотностью, преобразовывают с одним масштабированием и двумя фильтрами вейвлета для обеих фильтраций строки и столбца. Вейвлет с удвоенной плотностью преобразовывает, использует те же фильтры на всех этапах. 'realdt' и 'cplxdt' производят ориентированный двойной древовидный вейвлет, преобразовывает состоящий из двух и четырех отделимых вейвлетов, преобразовывает. 'realdddt' и 'cplxdddt' производят двойной древовидный вейвлет с удвоенной плотностью, преобразовывает. Двойной древовидный вейвлет преобразовывает использование различные фильтры для первой стадии (уровень).

Введите изображение, заданное как матрица с размерностями строки и столбца ровной длины. Оба размерности строки и столбца должны быть делимыми 2L, где L является уровнем вейвлета, преобразовывают. Кроме того, минимум размерностей строки и столбца изображения должен быть больше, чем или равным продукту максимальной продолжительности разложения (анализ) фильтры и 2(L-1).

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

Уровень разложения вейвлета, заданного как положительное целое число. Если L является значением level, 2L должен разделить обоих размерности строки и столбца x. Кроме того, минимум размерностей строки и столбца изображения должен быть больше, чем или равным продукту максимальной продолжительности разложения (анализ) фильтры и 2(L-1).

Уровень аналитические фильтры, заданные как матричный или массив ячеек матриц. Задайте fdf как матрицу, когда typetree будет 'dwt' или 'ddt'. Размер и структура матрицы зависят от входа typetree можно следующим образом:

  • 'dwt' — Это - критически выбранный дискретный вейвлет, преобразовывают. В этом случае fdf является матрицей 2D столбца с lowpass (масштабирование), просачиваются, первый столбец и highpass (вейвлет) просачиваются второй столбец.

  • 'ddt' — Это - вейвлет с удвоенной плотностью, преобразовывают. DWT с удвоенной плотностью является совершенным набором фильтров реконструкции с тремя каналами. fdf является матрицей с тремя столбцами с lowpass (масштабирование), просачиваются, первый столбец и два highpass (вейвлет) просачиваются вторые и третьи столбцы. В вейвлете с удвоенной плотностью преобразовывают, один lowpass и два фильтра highpass составляют совершенный набор фильтров реконструкции с тремя каналами. Это эквивалентно трем фильтрам, формирующим трудный кадр. Вы не можете произвольно выбрать, два вейвлета просачиваются DWT с удвоенной плотностью. Три фильтра вместе должны сформировать трудный кадр.

Задайте fdf как 1 2 массив ячеек матриц, когда typetree будет двойным древовидным преобразованием, 'realdt', 'cplxdt', 'realdddt' или 'cplxdddt'. Размер и структура элементов матрицы в массиве ячеек зависят от входа typetree можно следующим образом:

  • Поскольку двойной древовидный комплексный вейвлет преобразовывает, 'realdt' и 'cplxdt', fdf{1} является N-by-2 матрица, содержащая lowpass (масштабирование) и highpass (вейвлет), фильтрами для первого дерева и fdf{2} является N-by-2 матрица, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для второго дерева.

  • Поскольку двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает, 'realdddt' и 'cplxdddt', fdf{1} является N-by-3 матрица, содержащая lowpass (масштабирование) и два highpass (вейвлет), фильтрами для первого дерева и fdf{2} является N-by-3 матрица, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для второго дерева.

Анализ фильтрует для уровней> 1, заданный как матричный или массив ячеек матриц. Задайте df как матрицу, когда typetree будет 'dwt' или 'ddt'. Размер и структура матрицы зависят от входа typetree можно следующим образом:

  • 'dwt' — Это - критически выбранный дискретный вейвлет, преобразовывают. В этом случае df является матрицей 2D столбца с lowpass (масштабирование), просачиваются, первый столбец и highpass (вейвлет) просачиваются второй столбец. Для критически выбранного ортогонального или биоортогонального DWT фильтры в df и fdf должны быть идентичными.

  • 'ddt' — Это - вейвлет с удвоенной плотностью, преобразовывают. DWT с удвоенной плотностью является совершенным набором фильтров реконструкции с тремя каналами. df является матрицей с тремя столбцами с lowpass (масштабирование), просачиваются, первый столбец и два highpass (вейвлет) просачиваются вторые и третьи столбцы. В вейвлете с удвоенной плотностью преобразовывают, один lowpass и два фильтра highpass составляют совершенный набор фильтров реконструкции с тремя каналами. Это эквивалентно трем фильтрам, формирующим трудный кадр. Для DWT с удвоенной плотностью фильтры в df и fdf должны быть идентичными.

Задайте df как 1 2 массив ячеек матриц, когда typetree будет двойным древовидным преобразованием, 'realdt', 'cplxdt', 'realdddt' или 'cplxdddt'. Для двойных древовидных преобразований фильтры в fdf и df должны отличаться. Размер и структура элементов матрицы в массиве ячеек зависят от входа typetree можно следующим образом:

  • Поскольку двойной древовидный вейвлет преобразовывает, 'realdt' и 'cplxdt', df{1} является N-by-2 матрица, содержащая lowpass (масштабирование) и highpass (вейвлет), фильтрами для первого дерева и df{2} является N-by-2 матрица, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для второго дерева.

  • Поскольку двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает, 'realdddt' и 'cplxdddt', df{1} является N-by-3 матрица, содержащая lowpass (масштабирование) и два highpass (вейвлет), фильтрами для первого дерева и df{2} является N-by-3 матрица, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для второго дерева.

Отфильтруйте имя, заданное как вектор символов, или представьте скаляр в виде строки. Для критически выбранного DWT задайте любой допустимый ортогональный или биоортогональный фильтр вейвлета. Смотрите wfilters для деталей. Поскольку избыточный вейвлет преобразовывает, смотрите dtfilters для допустимых имен фильтра.

Имя фильтра первой стадии, заданное как вектор символов или скаляр строки. Определение фильтра первого уровня, который отличается от вейвлета и масштабирования, просачивается, последующие уровни допустимы и необходимы только с двойным древовидным вейвлетом, преобразовывает, 'realdt', 'cplxdt', 'realdddt' и 'cplxdddt'.

Отфильтруйте имя для этапов> 1, заданный как вектор символов или представьте скаляр в виде строки. Определение различного фильтра для этапов> 1 допустимо и необходимо только с двойным древовидным вейвлетом, преобразовывает, 'realdt', 'cplxdt', 'realdddt' и 'cplxdddt'.

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

свернуть все

Вейвлет преобразовывает, возвращенный как структура с этими полями:

Тип разложения вейвлета, используемого в анализе, возвращенном как один из 'dwt', 'ddt', 'realdt', 'cplxdt', 'realdddt' или 'cplxdddt'. 'dwt' является критически выбранным DWT. 'ddt' производит вейвлет с удвоенной плотностью, преобразовывают с одним масштабированием и двумя фильтрами вейвлета для обеих фильтраций строки и столбца. 'realdt' и 'cplxdt' производят ориентированный двойной древовидный вейвлет, преобразовывает состоящий из 2 и 4 отделимых вейвлетов, преобразовывает. 'realdddt' и 'cplxdddt' производят двойной древовидный вейвлет с удвоенной плотностью, преобразовывает состоящий из двух и четырех отделимых вейвлетов, преобразовывает.

Уровень разложения вейвлета, возвращенного как положительное целое число.

Разложение (анализ) и реконструкция (синтез) фильтры, возвращенные как структура с этими полями:

Аналитические фильтры первой стадии, возвращенные как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета, преобразовывают, или 1 2 массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и второй столбец является вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит аналитические фильтры первой стадии для соответствующего дерева.

Аналитические фильтры для уровней> 1, возвращенный как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета преобразовывают, или 1 2 массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и второй столбец является вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит аналитические фильтры для соответствующего дерева.

Фильтры реконструкции первого уровня, возвращенные как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета, преобразовывают, или 1 2 массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и второй столбец является вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабированием (lowpass) фильтр, и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит фильтры синтеза первой стадии для соответствующего дерева.

Фильтры реконструкции для уровней> 1, возвращенный как N-2 или матрица N-3 для одно-древовидного вейвлета преобразовывают, или 1 2 массив ячеек двух N-2 или матриц N-3 для двойного древовидного вейвлета преобразовывает. Матрицы являются N-3 для вейвлета с удвоенной плотностью, преобразовывает. Для матрицы N-2 первый столбец матрицы является масштабированием (lowpass) фильтр, и второй столбец является вейвлетом (highpass) фильтр. Для матрицы N-3 первый столбец матрицы является масштабированием (lowpass) фильтр, и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит аналитические фильтры первой стадии для соответствующего дерева.

Вейвлет преобразовывает коэффициенты, заданные как 1 на (level +1) массив ячеек матриц. Размер и структура элементов матрицы массива ячеек зависят от типа вейвлета, преобразовывают, typetree можно следующим образом:

  • 'dwt'cfs{j}(:,:,d)

    • j = 1,2... level является уровнем.

    • d = 1,2,3 ориентация.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

  • 'ddt'cfs{j}(:,:,d)

    • j = 1,2... level является уровнем.

    • d = 1,2,3,4,5,6,7,8 ориентация.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

  • 'realddt'cfs{j}(:,:,d,k)

    • j = 1,2... level является уровнем.

    • d = 1,2,3 ориентация.

    • k = 1,2 является вейвлетом, преобразовывают дерево.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

  • 'cplxdt'cfs{j}(:,:,d,k,m)

    • j = 1,2... level является уровнем.

    • d = 1,2,3 ориентация.

    • k = 1,2 является вейвлетом, преобразовывают дерево.

    • m = 1,2 является действительными и мнимыми частями.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

  • 'realdddt'cfs{j}(:,:,d,k)

    • j = 1,2... level является уровнем.

    • d = 1,2,3 ориентация.

    • k = 1,2 является вейвлетом, преобразовывают дерево.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

  • 'cplxdddt'cfs{j}(:,:,d,k,m)

    • j = 1,2... level является уровнем.

    • d = 1,2,3 ориентация.

    • k = 1,2 является вейвлетом, преобразовывают дерево.

    • m = 1,2 является действительными и мнимыми частями.

    • cfs{level+1}(:,:) является lowpass, или масштабированием, коэффициентами.

Введенный в R2013b