Двухдерево и двойная плотность 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.