dddtree2

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

Описание

пример

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'.

Примеры

свернуть все

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

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

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

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

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

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

  • Размерности строки и столбца являются делимыми 24.

  • Минимум размера строки и столбца должен быть больше или быть равен продукту максимальной длины аналитических фильтров и 23.

J = 4;
L = 3*2^(J+1);
N = L/2^J;
x = zeros(2*L,3*L);
[numrows,numcols] = size(x)
numrows = 192
numcols = 288

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

wt = dddtree2('realdt',x,J,Faf,af)
wt = struct with fields:
       type: 'realdt'
      level: 4
    filters: [1x1 struct]
        cfs: {1x5 cell}
      sizes: [14x2 double]

Четвертый элемент в wt.cfs коэффициенты вейвлета уровня 4. Вставьте 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')

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

Загрузите изображение и получите вейвлет с удвоенной плотностью, преобразовывают использующие фильтры с 6 касаниями (см. dtfilters).

load xbox
imagesc(xbox)
colormap gray

wt = dddtree2('ddt',xbox,1,'filters1')
wt = struct with fields:
       type: 'ddt'
      level: 1
    filters: [1x1 struct]
        cfs: {[64x64x8 double]  [64x64 double]}
      sizes: [10x2 double]

В критически произведенном 2D дискретном вейвлете преобразовывают, существует один фильтр highpass. Фильтрация строк и столбцов изображения с фильтром highpass соответствует извлечению деталей в диагональной ориентации. В вейвлете с удвоенной плотностью преобразовывают, существует два фильтра highpass, H1 и H2. По диагонали ориентированные детали извлечены путем фильтрации строк и столбцов изображений с четырьмя комбинациями фильтров highpass. Визуализируйте диагональные детали в четырех вейвлетах highpass-highpass поддиапазоны.

H1H1 = wt.cfs{1}(:,:,4);
H1H2 = wt.cfs{1}(:,:,5);
H2H1 = wt.cfs{1}(:,:,7);
H2H2 = wt.cfs{1}(:,:,8);
subplot(2,2,1)
imagesc(H1H1);
title('H1 H1')
colormap gray;
subplot(2,2,2);
imagesc(H1H2);
title('H1 H2')
subplot(2,2,3)
imagesc(H2H1)
title('H2 H1')
subplot(2,2,4)
imagesc(H2H2)
title('H2 H2')

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

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

load xbox
imagesc(xbox)
colormap gray

wt = dddtree2('cplxdt',xbox,1,'FSfarras','qshift10')
wt = struct with fields:
       type: 'cplxdt'
      level: 1
    filters: [1x1 struct]
        cfs: {[5-D double]  [64x64x2x2 double]}
      sizes: [5x2 double]

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

waveletcfs = wt.cfs{1};
subplot(2,2,1)
imagesc(waveletcfs(:,:,3,1,1))
title('Diagonal - Tree 1 - Real')
colormap gray
subplot(2,2,2)
imagesc(waveletcfs(:,:,3,1,2))
title('Diagonal - Tree 1 - Imaginary')
subplot(2,2,3)
imagesc(waveletcfs(:,:,3,2,1))
title('Diagonal - Tree 2 - Real')
subplot(2,2,4)
imagesc(waveletcfs(:,:,3,2,2))
title('Diagonal - Tree 2 - Imaginary')

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

свернуть все

Тип разложения вейвлета в виде одного из '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, или масштабирование, коэффициенты.

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

    • j = 1,2... level уровень.

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

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

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

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

    • j = 1,2... level уровень.

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

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

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

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

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

    • j = 1,2... level уровень.

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

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

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

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

    • j = 1,2... level уровень.

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

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

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

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

Каждая ориентация соответствует конкретному поддиапазону. С удвоенной плотностью преобразовывает 'ddt', 'realddt', и 'cplxdddt' сгенерируйте коэффициенты вейвлета восьми ориентаций. Другие преобразования, 'dwt', 'realdt', и 'cplxdt' сгенерируйте коэффициенты вейвлета трех ориентаций. Соответствие к поддиапазонам следующие.

typetreeОриентации
'dwt', 'realdt', 'cplxdt'

'L' и 'H', обозначьте lowpass и фильтры highpass, соответственно.

  • d=1: 'LH' поддиапазон

  • d=2: 'HL' поддиапазон

  • d=3: 'HH' поддиапазон

'ddt', 'realdddt', 'cplxdddt'

'Lo', 'H1', и 'H2' обозначьте lowpass и два фильтра highpass, соответственно.

  • d=1: 'Lo H1' поддиапазон

  • d=2: 'Lo H2' поддиапазон

  • d=3: 'H1 Lo' поддиапазон

  • d=4: 'H1 H1' поддиапазон

  • d=5: 'H1 H2' поддиапазон

  • d=6: 'H2 Lo' поддиапазон

  • d=7: 'H2 H1' поддиапазон

  • d=8: 'H2 H2' поддиапазон

Размеры компонентов в cfs, возвращенный как матрица с целочисленным знаком N-2. Значение N зависит на уровне разложения вейвлета и типе разложения вейвлета: N = 2 + level × (количество ориентаций).

  • cfs(1,:) = размерности входного изображения.

  • cfs(2+level,:) = размерности масштабных коэффициентов.

  • cfs(1+no×(i–1)+(1:no),:) = размерности уровня i детализируйте коэффициенты, где no количество ориентаций.

Введенный в R2013b