Двухдерево и двойная плотность 2-D вейвлет
возвращает wt = dddtree2(typetree,x,level,fdf,df)typetree дискретное вейвлет 2-D входного изображения, x, до уровня, level. Вейвлет использует фильтры разложения (анализа), fdf, для первого уровня и фильтров анализа, df, для последующих уровней. Поддерживаемые вейвлеты преобразований - это критически выбранные DWT, двойная плотность, действительное ориентированное двойственное дерево, комплексное ориентированное двойное дерево, действительное ориентированное двойное дерево с двойной плотностью и комплексное ориентированное двойное дерево с двойной плотностью вейвлета преобразования. Критически выбранный DWT является разложением банка фильтров в ортогональном или биортогональном базисе (не избыточном). Другие вейвлеты преобразований являются блоками фильтров с избыточной дискретизацией с различными степенями селективности по направлению.
использует фильтры, указанные в 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];Создайте 6-тапные фильтры анализа Q-сдвига Кингсбери для последующих этапов мультиразрешения.
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];Чтобы визуализировать шесть направленных вейвлет, вы измените вейвлет-коэффициенты четырехуровневого действительного двухдревовидного вейвлет-преобразования изображения с нулями. Создайте изображение нулей, размер которых удовлетворяет следующим ограничениям:
Размерности строки и столбца делятся на .
Минимум размера строки и столбца должен быть больше или равен продукту максимальной длины фильтров анализа и .
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]
В критически выбранном 2-D дискретном вейвлет существует один высокочастотный фильтр. Фильтрация строк и столбцов изображения фильтром highpass соответствует извлечению деталей в диагональной ориентации. В вейвлет двойной плотности присутствуют два высокочастотных фильтра, H1 и H2. Диагонально ориентированные детали извлекаются путем фильтрации строк и столбцов с четырьмя комбинациями фильтров 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')
typetree - Тип вейвлет'dwt' | 'ddt' | 'realdt' | 'cplxdt' | 'realdddt' | 'cplxdddt'Тип разложения вейвлета, заданный как один из 'dwt', 'ddt', 'realdt', 'cplxdt', 'realdddt', или 'cplxdddt'. Тип, 'dwt', приводит к критически дискретному (нерезервирующему) дискретному вейвлет. Другие типы разложения вызывают избыточную дискретизацию вейвлет. 'ddt' приводит к преобразованию вейвлета с двойной плотностью с одним масштабированием и два вейвлета фильтрами для фильтрации как строка, так и столбец. Преобразование вейвлета с двойной плотностью использует одни и те же фильтры на всех этапах. 'realdt' и 'cplxdt' формируют ориентированные двойственные древовидные вейвлет-преобразования, состоящие из двух и четырех разделяемых вейвлет. 'realdddt' и 'cplxdddt' получают двойные древовидные вейвлет двойной плотности. Двухдревовидные вейвлет используют различные фильтры для первого этапа (уровня).
x - Входное изображениеВходное изображение, заданное как матрица с размерностями строк и столбцов четной длины. Строки и столбцы должны быть делятся на 2L, где L - уровень вейвлет. Кроме того, минимум размерностей строки и столбца изображения должен быть больше или равен продукту максимальной длины фильтров разложения (анализа) и 2(L-1).
Типы данных: double
level - Уровень вейвлетУровень вейвлет, заданный как положительное целое число. Если L - значение level, 2L необходимо разделить обеих строки и столбцы размерностей x. Кроме того, минимум размерностей строки и столбца изображения должен быть больше или равен продукту максимальной длины фильтров разложения (анализа) и 2(L-1).
fdf - Фильтры анализа первого уровняАнализ уровня 1 фильтрует, задается как матрица или массив ячеек матриц. Задайте fdf как матрица, когда typetree является 'dwt' или 'ddt'. Размер и структура матрицы зависят от typetree введите следующим образом:
'dwt' - Это критически выбранное дискретное вейвлет. В этом случае fdf - двухколоночная матрица с 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 (вейвлет) фильтра для второго дерева.
df - Фильтры анализа для уровней > 1Фильтры анализа для уровней > 1, заданные как матрица или массив ячеек матриц. Задайте df как матрица, когда typetree является 'dwt' или 'ddt'. Размер и структура матрицы зависят от typetree введите следующим образом:
'dwt' - Это критически выбранное дискретное вейвлет. В этом случае df - двухколоночная матрица с lowpass (масштабирование) фильтром в первом столбце и highpass (вейвлет) фильтром во втором столбце. Для критически выбранных ортогональных или биортогональных DWT фильтрует в df и fdf должны быть идентичными.
'ddt' - Это вейвлет двойной плотности. DWT с двойной плотностью представляет собой трехканальный идеальный блок фильтров реконструкции. df является трехколоночной матрицей с lowpass (масштабирование) фильтром в первом столбце и двумя highpass (вейвлет) фильтрами во втором и третьем столбцах. В преобразовании вейвлета двойной плотности один lowpass и два highpass фильтра составляют трехканальный идеальный набор фильтров реконструкции. Это эквивалентно трем фильтрам, образующим плотную систему координат. Для double-плотности 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 (вейвлет) фильтра для второго дерева.
fname - Имя фильтраfname1 - Имя фильтра первой ступениИмя фильтра первой стадии, заданное как вектор символов или строковый скаляр. Установка фильтра первого уровня, который отличается от вейвлет и масштабирующих фильтров на последующих уровнях, действительна и необходима только при двойных древовидных вейвлет, 'realdt', 'cplxdt', 'realdddt', и 'cplxdddt'.
fname2 - Имя фильтра для каскадов > 1Имя фильтра для каскадов > 1, заданное как вектор символов или строковый скаляр. Установка другого фильтра для каскадов > 1 действительна и необходима только с двухдревовидными вейвлет, 'realdt', 'cplxdt', 'realdddt', и 'cplxdddt'.
wt - ВейвлетВейвлет, возвращенное как структура с этими полями:
type - Тип вейвлет-разложения (банк фильтров)'dwt' | 'ddt' | 'realdt' | 'cplxdt' | 'realdddt' | 'cplxdddt'Тип разложения вейвлета, используемый в анализе, возвращен как один из 'dwt', 'ddt', 'realdt', 'cplxdt', 'realdddt', или 'cplxdddt'. 'dwt' - критически выбранный DWT. 'ddt' приводит к преобразованию вейвлета с двойной плотностью с одним масштабированием и два вейвлета фильтрами для фильтрации как строка, так и столбец. 'realdt' и 'cplxdt' формируют ориентированные двойные древовидные вейвлет-преобразования, состоящие из 2 и 4 разделяемых вейвлет. 'realdddt' и 'cplxdddt' получают двойные древовидные вейвлет двойной плотности, состоящие из двух и четырех разделяемых вейвлет.
level - Уровень вейвлетУровень вейвлет, возвращенный как положительное целое число.
filters - Фильтры разложения (анализа) и реконструкции (синтеза)Фильтры разложения (анализа) и реконструкции (синтеза), возвращенные как структура с этими полями:
Fdf - Фильтры первого этапа анализаФильтры анализа первой стадии, возвращенные как матрица N-на-2 или N-на-3 для вейвлет-преобразований с одним деревом или как массив ячеек 1 на 2 из двух матриц N-на-2 или N-на-3 для вейвлет-преобразований с двумя деревьями. Матрицы N -by-3 для вейвлет двойной плотности. Для матрицы N -by-2 первым столбцом матрицы является фильтр масштабирования (lowpass), а вторым - вейвлет (highpass). Для матрицы N -by-3 первый столбец матрицы является фильтром масштабирования (lowpass), а второй и третий столбцы являются вейвлет (highpass) фильтрами. Для преобразований двойственного дерева каждый элемент массива ячеек содержит фильтры анализа первого этапа для соответствующего дерева.
Df - Фильтры анализа для уровней > 1Фильтры анализа для уровней > 1, возвращенные как N-на-2 или N-на-3 матрица для вейвлет-преобразований с одним деревом или массив ячеек 1 на 2 из двух матриц N-на-2 или N-на-3 для вейвлет-преобразований с двумя деревьями. Матрицы N -by-3 для вейвлет двойной плотности. Для матрицы N -by-2 первым столбцом матрицы является фильтр масштабирования (lowpass), а вторым - вейвлет (highpass). Для матрицы N -by-3 первый столбец матрицы является фильтром масштабирования (lowpass), а второй и третий столбцы являются вейвлет (highpass) фильтрами. Для преобразования двойственного дерева каждый элемент массива ячеек содержит фильтры анализа для соответствующего дерева.
Frf - Фильтры реконструкции первого уровняФильтры реконструкции первого уровня, возвращенные как матрица N-на-2 или N-на-3 для вейвлет-преобразований с одним деревом или массив ячеек 1 на 2 из двух матриц N-на-2 или N-на-3 для вейвлет-преобразований с двумя деревьями. Матрицы N -by-3 для вейвлет двойной плотности. Для матрицы N -by-2 первым столбцом матрицы является фильтр масштабирования (lowpass), а вторым - вейвлет (highpass). Для матрицы N -by-3 первый столбец матрицы является фильтром масштабирования (lowpass), а второй и третий столбцы являются вейвлет (highpass) фильтрами. Для преобразований двойственного дерева каждый элемент массива ячеек содержит фильтры синтеза первого этапа для соответствующего дерева.
Rf - Фильтры реконструкции для уровней > 1Фильтры реконструкции для уровней > 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) фильтрами. Для преобразований двойственного дерева каждый элемент массива ячеек содержит фильтры анализа первого этапа для соответствующего дерева.
cfs - Вейвлеты вейвлет-преобразованияВейвлеты вейвлет-преобразования, заданные как 1-by- (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' |
|
'ddt', 'realdddt', 'cplxdddt' |
|
sizes - Размеры компонентовРазмеры компонентов в cfs, возвращенный как N-by-2 целочисленная матрица. Значение N зависит от уровня разложения вейвлета и типа разложения вейвлета: N = 2 + level × (количество ориентаций).
cfs(1,:) = размерности входа изображения.
cfs(2+level,:) = размерности коэффициентов масштабирования.
cfs(1+no×(i–1)+(1:no),:) = размерности i уровня коэффициенты детализации, где no количество ориентаций.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.