Извлеките dual-tree/double-density коэффициенты вейвлета или проекции
извлекает коэффициенты или проекции подпространства от 1D или 2D разложения вейвлета, out
= dddtreecfs(outputtype
,wt
,outputspec
,outputindices
)wt
. Если outputtype
равняется 'e'
, out
содержит вейвлет или масштабные коэффициенты. Если outputtype
равняется 'r'
, out
содержит вейвлет или масштабирующиеся проекции подпространства (реконструкции).
строит сигнал или реконструкцию изображений или заданные аналитические коэффициенты. Можно включать out
= dddtreecfs(outputtype
,wt
,outputspec
,outputindices
,'plot')'plot'
опция где угодно после wt
входной параметр.
Получите комплексное двойное древовидное преобразование вейвлета 1D шумного Доплеровского сигнала. Восстановите приближение на основе уровня три коэффициента детали несколькими способами.
Загрузите шумный Доплеровский сигнал. Получите комплексное двойное дерево, преобразовывают вниз к уровню 3.
load noisdopp; wt = dddtree('cplxdt',noisdopp,3,'dtf1')
wt = struct with fields:
type: 'cplxdt'
level: 3
filters: [1x1 struct]
cfs: {1x4 cell}
Постройте реконструкцию исходного сигнала на основе уровня три коэффициента детали с outputspec
установите на 'scale'
.
xr = dddtreecfs('r',wt,'scale',{3},'plot');
Выход xr
массив ячеек 1 на 1. Сгенерируйте ту же реконструкцию при помощи 'cumind'
и уровень три древовидных узла. Первый элемент каждого вектора в массиве ячеек обозначает уровень, и второй элемент обозначает дерево. Подтвердите, что реконструкции идентичны.
outputindices = {[3 1];[3 2]}; xr2 = dddtreecfs('r',wt,'cumind',outputindices); max(abs(xr2-xr{1}))
ans = 0
Выход xr2
тот же тип данных как исходный сигнал.
Загрузите шумный Доплеровский сигнал. Получите комплексное двойное дерево, преобразовывают вниз к уровню 3.
load noisdopp; wt = dddtree('cplxdt',noisdopp,3,'dtf1')
wt = struct with fields:
type: 'cplxdt'
level: 3
filters: [1×1 struct]
cfs: {[1×512×2 double] [1×256×2 double] [1×128×2 double] [1×128×2 double]}
Создайте массив ячеек векторов, чтобы получить второе - и дважды косвенные коэффициенты детали от каждого из деревьев набора фильтров вейвлета.
outputindices = {[2 1]; [2 2]; [3 1]; [3 2]};
Первый элемент каждого вектора в массиве ячеек обозначает уровень или этап. Второй элемент обозначает дерево.
Извлеките коэффициенты детали.
detailCoeffs = dddtreecfs('e',wt,'ind',outputindices,'plot');
Выход detailCoeffs
массив ячеек 1 на 4. Элементы массива ячеек содержат коэффициенты вейвлета, соответствующие элементам в outputindices
. Например, подтвердите detailCoeffs{1}
содержит уровень два коэффициента детали от первого дерева.
max(abs(wt.cfs{2}(1,:,1)-detailCoeffs{1}))
ans = 0
Загрузите шумный Доплеровский сигнал. Получите комплексное двойное дерево, преобразовывают вниз к уровню 3.
load noisdopp; wt = dddtree('cplxdt',noisdopp,3,'dtf1');
Создайте массив ячеек векторов, чтобы получить второе - и дважды косвенные коэффициенты детали от каждого из деревьев набора фильтров вейвлета.
outputindices = {[2 1]; [2 2]; [3 1];[3 2]};
Первый элемент каждого вектора в массиве ячеек обозначает уровень или этап. Второй элемент обозначает дерево.
Создайте массив структур, идентичный wt
выход dddtree
со всеми коэффициентами, равными нулю кроме второго - и дважды косвенными коэффициентами детали.
out = dddtreecfs('e',wt,'cumind',outputindices,'plot');
Сгенерируйте реконструкцию на основе второго - и дважды косвенные коэффициенты детали.
xr = idddtree(out);
Сгенерируйте две реконструкции, на основе второго - и дважды косвенные коэффициенты детали. Подтвердите, что сумма этих двух реконструкций идентична xr
.
xr2 = dddtreecfs('r',wt,'scale',{2;3}); max(abs(xr-(xr2{1}+xr2{2})))
ans = 8.8818e-16
Использование комплексный двойной древовидный вейвлет преобразовывает, чтобы изолировать диагональные функции в изображении в +45 и –45 градусах.
Загрузите и отобразите xbox
изображение.
load xbox
imagesc(xbox)
Получите комплексный двойной древовидный вейвлет, преобразовывают вниз к уровню 3.
fdf = dtfilters('FSfarras'); df = dtfilters('qshift10'); wt = dddtree2('cplxdt',xbox,3,fdf,df);
Изолируйте +45 и-45 диагональных функций изображений на уровне коэффициенты вейвлета. Сделайте это путем создания массива ячеек векторов, задающих древовидные узлы, содержащие диагональные детали. Первый элемент в векторе задает уровень. Три остающихся элемента задают ориентацию, дерево вейвлета и действительные и мнимые части, соответственно (см. dddtree2
).
outputindices = {[1 3 1 1];[1 3 1 2];[1 3 2 1];[1 3 2 2]}; out = dddtreecfs('e',wt,'ind',outputindices,'plot');
В этом примере показано, как аналитические коэффициенты распределяются, в зависимости от преобразования в древовидном выходе dddtree
и dddtree2
.
1D вейвлет преобразовывает
Загрузите в шумном Доплеровском сигнале. Сгенерируйте четырехуровневое разложение вейвлета сигнала для каждого типа преобразования. В зависимости от преобразования различные размерности массивов коэффициентов соответствуют ориентации, дереву вейвлета или действительным и мнимым частям.
Критически выбранный дискретный вейвлет преобразовывает
load noisdopp wt = dddtree('dwt',noisdopp,4,'sym4')
wt = struct with fields:
type: 'dwt'
level: 4
filters: [1x1 struct]
cfs: {1x5 cell}
Это - обычный безызбыточный дискретный вейвлет, преобразовывают. Первые четыре элемента wt.cfs
коэффициенты вейвлета. Пятый элемент является масштабными коэффициентами.
Вейвлет с удвоенной плотностью преобразовывает
wt = dddtree('ddt',noisdopp,4,'filters1')
wt = struct with fields:
type: 'ddt'
level: 4
filters: [1x1 struct]
cfs: {1x5 cell}
Третья размерность 3-D массивов коэффициентов вейвлета соответствует дереву. Пятый элемент является масштабными коэффициентами.
Двойной древовидный комплексный вейвлет преобразовывает
wt = dddtree('cplxdt',noisdopp,4,'dtf1')
wt = struct with fields:
type: 'cplxdt'
level: 4
filters: [1x1 struct]
cfs: {1x5 cell}
Третья размерность всех трехмерных массивов в cfs
соответствует действительным и мнимым частям. Первые четыре элемента cfs
коэффициенты вейвлета и cfs{5}
масштабные коэффициенты.
Восстановите сигналы от коэффициентов в древовидных узлах [1 1]
, [5 2], [3 1]
, и
[4 2]
. Постройте сигналы. Выход является массивом ячеек, содержащим реконструкции. Реконструкции являются той же длиной как исходный сигнал.
outputindices = {[1 1];[5 2];[3 1];[4 2]}; XR = dddtreecfs('r',wt,'plot','ind',outputindices);
Извлеките и постройте коэффициенты, используемые, чтобы восстановить сигналы. Выход является массивом ячеек, содержащим коэффициенты соответствующей длины: 512, 64, 128, и 64.
XR = dddtreecfs('e',wt,'plot','ind',outputindices);
Теперь используйте 'cumind'
вместо 'ind'
. Выход XR
сигнал длины 1024 в первом случае, и 'cplxdt'
двойное дерево во втором.
XR = dddtreecfs('r',wt,'plot','cumind',outputindices);
XR = dddtreecfs('e',wt,'plot','cumind',outputindices);
Двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает
wt = dddtree('cplxdddt',noisdopp,4,'dddtf1')
wt = struct with fields:
type: 'cplxdddt'
level: 4
filters: [1x1 struct]
cfs: {1x5 cell}
Третья размерность 4-D массивов коэффициентов вейвлета соответствует дереву. Четвертая размерность в 4-D массивах коэффициентов вейвлета и третья размерность в 3-D содействующем массиве масштабирования соответствуют действительным и мнимым частям.
2D вейвлет преобразовывает
Загрузите в 256 256 рисунке маски. Сгенерируйте двухуровневое разложение вейвлета изображения для каждого типа преобразования. Наблюдайте размерности выходных коэффициентов.
Критически выбранный дискретный вейвлет преобразовывает
load mask im = X; wt = dddtree2('dwt',im,3,'sym4')
wt = struct with fields:
type: 'dwt'
level: 3
filters: [1x1 struct]
cfs: {1x4 cell}
sizes: [10x2 double]
Это - обычный безызбыточный 2D дискретный вейвлет, преобразовывают. Третья размерность в 3-D массивах коэффициентов вейвлета соответствует ориентации. Масштабные коэффициенты являются последним элементом cfs
.
Действительный ориентированный двойной древовидный вейвлет преобразовывает
wt = dddtree2('realdt',im,3,'dtf1')
wt = struct with fields:
type: 'realdt'
level: 3
filters: [1x1 struct]
cfs: {1x4 cell}
sizes: [11x2 double]
Четвертая размерность в 4-D массивах коэффициентов вейвлета и третья размерность в 3-D содействующем массиве масштабирования соответствуют дереву. Третья размерность в 4-D массивах коэффициентов вейвлета соответствует ориентации.
Комплексный ориентированный двойной древовидный вейвлет преобразовывает
wt = dddtree2('cplxdt',im,3,'dtf1')
wt = struct with fields:
type: 'cplxdt'
level: 3
filters: [1x1 struct]
cfs: {[5-D double] [5-D double] [5-D double] [32x32x2x2 double]}
sizes: [11x2 double]
[size(wt.cfs{1});size(wt.cfs{2});size(wt.cfs{3})]
ans = 3×5
128 128 3 2 2
64 64 3 2 2
32 32 3 2 2
Третья размерность 5-D массивов коэффициентов вейвлета представляет ориентацию. Четвертая размерность в 5-D массивах и третья размерность в 4-D масштабирующийся содействующий массив представляют дерево. Пятая размерность в 5-D массивах и четвертая размерность в 4-D массиве представляют действительные и мнимые части.
Вейвлет с удвоенной плотностью преобразовывает
wt = dddtree2('ddt',im,3,'filters1')
wt = struct with fields:
type: 'ddt'
level: 3
filters: [1x1 struct]
cfs: {1x4 cell}
sizes: [26x2 double]
Третья размерность в 3-D массивах коэффициентов вейвлета представляет ориентацию.
Действительный ориентированный вейвлет с удвоенной плотностью преобразовывает
wt = dddtree2('realdddt',im,3,'self1')
wt = struct with fields:
type: 'realdddt'
level: 3
filters: [1x1 struct]
cfs: {1x4 cell}
sizes: [26x2 double]
Третья размерность в 4-D массивах коэффициентов вейвлета представляет ориентацию. Четвертая размерность в 4-D массивах и третья размерность в 3-D содействующем массиве масштабирования представляют дерево.
Комплексный ориентированный вейвлет с удвоенной плотностью преобразовывает
wt = dddtree2('cplxdddt',im,3,'self1')
wt = struct with fields:
type: 'cplxdddt'
level: 3
filters: [1x1 struct]
cfs: {[5-D double] [5-D double] [5-D double] [32x32x2x2 double]}
sizes: [26x2 double]
[size(wt.cfs{1}) ; size(wt.cfs{2}) ; size(wt.cfs{3})]
ans = 3×5
128 128 8 2 2
64 64 8 2 2
32 32 8 2 2
Третья размерность 5-D массивов коэффициентов вейвлета представляет ориентацию. Четвертая размерность в 5-D массивах и третья размерность в 4-D масштабирующийся содействующий массив представляют дерево. Пятая размерность в 5-D массивах и четвертая размерность в 4-D массиве представляют действительные и мнимые части.
Восстановите и постройте два изображения на основе коэффициентов детали второго уровня и масштабных коэффициентов, соответственно.
XR = dddtreecfs('r',wt,'plot','scale',{2;4});
Выход XR
массив ячеек, содержащий, оба 256 256 отображают.
Извлеките коэффициенты, используемые, чтобы произвести два изображения. Выход является массивом ячеек, содержащим две двойных древовидных структуры, один для каждой заданной шкалы.
XR = dddtreecfs('e',wt,'scale',{2;4}); XR{1}
ans = struct with fields:
type: 'cplxdddt'
level: 3
filters: [1x1 struct]
cfs: {[5-D double] [5-D double] [5-D double] [32x32x2x2 double]}
sizes: [26x2 double]
XR{2}
ans = struct with fields:
type: 'cplxdddt'
level: 3
filters: [1x1 struct]
cfs: {[5-D double] [5-D double] [5-D double] [32x32x2x2 double]}
sizes: [26x2 double]
Подтвердите единственные ненулевые коэффициенты в каждой структуре, содержавшейся в XR
уровень два коэффициента вейвлета и масштабные коэффициенты, соответственно.
dtInd = 1;
[max(abs(XR{dtInd}.cfs{1}(:)));max(abs(XR{dtInd}.cfs{2}(:)));...
max(abs(XR{dtInd}.cfs{3}(:)));max(abs(XR{dtInd}.cfs{4}(:)))]
ans = 4×1
0
143.9924
0
0
dtInd = 2;
[max(abs(XR{dtInd}.cfs{1}(:)));max(abs(XR{dtInd}.cfs{2}(:)));...
max(abs(XR{dtInd}.cfs{3}(:)));max(abs(XR{dtInd}.cfs{4}(:)))]
ans = 4×1
103 ×
0
0
0
1.0545
Используйте 'ind'
восстановить и отобразить четыре изображения на основе четырех компонентов lowpass, соответственно.
outputindices = {[4 1 1];[4 2 1];[4 1 2];[4 2 2]}; XR = dddtreecfs('r',wt,'plot','ind',outputindices);
Выход XR
массив ячеек, содержащий четыре изображения. Каждое изображение 256 256. Отобразитесь коэффициенты раньше восстанавливали изображения.
XR = dddtreecfs('e',wt,'plot','ind',outputindices);
Выход XR
массив ячеек, содержащий четыре компонента lowpass. Каждый компонент 32 32.
outputtype
'OutputType' 'e'
| 'r'
Выходной тип в виде 'e'
или 'r'
. Используйте 'e'
получить коэффициенты вейвлета или масштабирование. Используйте 'r'
получить проекцию или реконструкцию, на соответствующее масштабирование или подпространство вейвлета.
wt
— Вейвлет преобразовываетВейвлет преобразовывает в виде структуры. Массивом структур является выход dddtree
или dddtree2
.
outputspec
— Выведите спецификацию'lowpass'
| 'scale'
| 'ind'
| 'cumind'
Выведите спецификацию в виде одного из 'lowpass'
шкала
ind
, или 'cumind'
. Выходные технические требования определяются следующим образом:
'lowpass'
— Выводит lowpass, или масштабирование, коэффициенты или приближение сигнала/изображения на основе масштабных коэффициентов. Если вы устанавливаете выходную спецификацию на 'lowpass'
, не задавайте outputindices
. Если outputtype
'e'
, out
массив структур с полями, идентичными входному массиву структур wt
за исключением того, что весь вейвлет (деталь) коэффициенты равен нулю. Если outputtype
'r'
, out
сигнал или приближение изображений на основе масштабных коэффициентов. Приближение сигнала или изображения равно в размере исходному входу к dddtree
или dddtree2
.
'scale'
— Выводит коэффициенты или приближение сигнала/изображения на основе шкал, заданных в outputindices
. Если outputtype
'e'
, out
массив ячеек массивов структур. Поля массивов структур в out
идентичны полям входного массива структур wt
. Коэффициенты в cfs
поле все равно нулю кроме коэффициентов, соответствующих шкалам в outputindices
. Если outputtype
'r'
, out
сигнал или приближение изображений на основе шкал в outputindices
. Приближение сигнала или изображения равно в размере исходному входу к dddtree
или dddtree2
.
'ind'
— Выводит коэффициенты или приближение сигнала/изображения на основе древовидно-позиционных индексов, заданных в outputindices
. Если outputtype
'e'
, out
массив ячеек векторов или матриц, содержащих коэффициенты, заданные древовидно-позиционными индексами в outputindices
. Если outputtype
'r'
, out
массив ячеек векторов или матриц, содержащих сигнал или приближения изображений на основе соответствующих древовидно-позиционных индексов в outputindices
.
'cumind'
— Выводит коэффициенты или приближение сигнала/изображения на основе древовидно-позиционных индексов, заданных в outputindices
. Если outputtype
'e'
, out
массив структур. Поля массива структур идентичны полям входного массива структур wt
. Коэффициенты в cfs
поле все равно нулю кроме коэффициентов, соответствующих древовидным положениям в outputindices
. Если outputtype
'r'
, out
сигнал или приближение изображений на основе коэффициентов, соответствующих древовидно-позиционным индексам в outputindices
.
Пример: 'ind',{[1 1]; [1 2]}
outputindices
— Выведите индексыВыведите индексы в виде массива ячеек со скалярными или векторными элементами. Если outputspec
равняется 'scale'
, скалярный элемент выбирает соответствующий элемент в cfs
поле wt
. Если outputspec
равняется 'ind'
или 'cumind'
, элементы outputspec
векторы-строки. Первый элемент вектора-строки соответствует элементу в cfs
поле wt
. Последующие элементы в векторе-строке соответствуют индексам массива, содержавшегося в элементе массива ячеек. Для описания последующих элементов смотрите Распределение Аналитических Коэффициентов в Древовидной структуре Вейвлета. Для получения дополнительной информации смотрите dddtree
и dddtree2
.
Пример: 'scale',{1;2;3}
out
— Сигнал или реконструкция изображений или коэффициентыСигнал или реконструкция изображений или коэффициенты, возвращенные как вектор, матрица, массив структур, массив ячеек векторов или матриц, или массив ячеек массивов структур. Форма out
зависит от значения outputspec
и outputindices
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.