Обратный 2D поднимающийся вейвлет преобразовывает
возвращается 2D обратный вейвлет преобразовывают на основе коэффициентов приближения, xr
= ilwt2(ll
,lh
,hl
,hh
)ll
, и горизонталь (lh
), вертикальный (hl
), и диагональ (hh
) коэффициенты вейвлета. По умолчанию, ilwt2
принимает, что вы использовали поднимающуюся схему, сопоставленную с db1
вейвлет, чтобы получить коэффициенты. Если вы не изменили коэффициенты, xr
совершенная реконструкция сигнала.
Загрузите и отобразитесь 128 128 xbox
изображение.
load xbox imagesc(xbox) title("Original Image")
Получите 2D LWT изображения с помощью настроек по умолчанию. Сохраните целочисленные значения.
[ll,lh,hl,hh] = lwt2(xbox,Int2Int=true);
Получите обратный LWT до уровня 1. Подтвердите, что размер реконструкции 64 64.
xr = ilwt2(ll,lh,hl,hh,Level=1,Int2Int=true); size(xr)
ans = 1×2
64 64
imagesc(xr)
title("Level 1 Reconstruction")
Получите обратный LWT использование настроек по умолчанию. Подтвердите совершенную реконструкцию.
xr = ilwt2(ll,lh,hl,hh,Int2Int=true); max(abs(xr(:)-xbox(:)))
ans = 0
Загрузите 3-D wmri
набор данных. Данные состоят из 27 128 128 изображения магнитного резонанса (MRI), расположенные в 128 128 27 массивами.
load wmri
Отобразите некоторые срезы вдоль Z-ориентации исходного набора данных.
map = pink(90); idxImages = 1:3:size(X,3); figure("DefaultAxesXTick",[],"DefaultAxesYTick",[],... "DefaultAxesFontSize",8,"Color","w") colormap(map) for k = 1:9 j = idxImages(k); subplot(3,3,k) image(X(:,:,j)) str = sprintf("Z = %d",j); title(str) end
По умолчанию, lwt2
выполняет разложение вейвлета вдоль строк и столбцов входных данных. Используйте lwt2
получить 2D LWT каждого 128 128 срез в 3-D наборе данных с помощью поднимающейся схемы, сопоставленной с bior3.5
вейвлет. Сохраните данные с целочисленным знаком.
lscheme = liftingScheme(Wavelet="bior3.5");
[ll,lh,hl,hh] = lwt2(X,LiftingScheme=lscheme,Int2Int=true);
Смотрите размерности содействующего массива ячеек детали. Подтвердите, что коэффициенты на каждом уровне являются трехмерным массивом, и размер третьей размерности равняется 27.
hh
hh=7×1 cell array
{64x64x27 double}
{32x32x27 double}
{16x16x27 double}
{ 8x8x27 double}
{ 4x4x27 double}
{ 2x2x27 double}
{ 1x1x27 double}
Получите обратный 2D LWT до уровня 1. Подтвердите, что размер 3-D реконструкции 64 64 27.
xr = ilwt2(ll,lh,hl,hh,LiftingScheme=lscheme,Int2Int=true,Level=1); size(xr)
ans = 1×3
64 64 27
Выберите любой срез из исходного набора данных и выполните те же операции LWT на том срезе. Подтвердите, что реконструкция равна соответствующему срезу в 3-D массиве реконструкции.
num = 13; slice = X(:,:,num); [lls,lhs,hls,hhs] = lwt2(slice,LiftingScheme=lscheme,Int2Int=true); xrs = ilwt2(lls,lhs,hls,hhs,LiftingScheme=lscheme,Int2Int=true,Level=1); max(max(abs(xrs-xr(:,:,num))))
ans = 0
Сравните реконструкцию среза с исходной версией.
figure colormap(map) subplot(1,2,1) image(X(:,:,num)) title("Original") subplot(1,2,2) image(xrs) title("Level 1 Reconstruction")
ll
— Коэффициенты приближенияКоэффициенты приближения в самой грубой шкале в виде скаляра, вектора или матрицы. Коэффициентами является выход lwt2
.
Типы данных: single
| double
Поддержка комплексного числа: Да
lh
— Горизонтальные коэффициенты деталиГоризонтальные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы lh
в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2
.
Типы данных: single
| double
Поддержка комплексного числа: Да
hl
— Вертикальные коэффициенты деталиВертикальные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы hl
в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2
.
Типы данных: single
| double
Поддержка комплексного числа: Да
hh
— Диагональные коэффициенты деталиДиагональные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы hh
в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2
.
Типы данных: single
| double
Поддержка комплексного числа: Да
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN
, где Name
имя аргумента и Value
соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
xr = ilwt2(ll,lh,hl,hh,Wavelet="db2",Int2Int=true)
Wavelet
— Вейвлет"db1"
(значение по умолчанию) | вектор символов | строковый скалярОртогональный или биоортогональный вейвлет, чтобы использовать в обратном LWT в виде вектора символов или строкового скаляра. Смотрите свойство Wavelet liftingScheme
для списка поддерживаемых вейвлетов. Для совершенной реконструкции необходимо задать тот же вейвлет, что вы раньше получали коэффициенты ll
, lh
, hl
, и hh
.
Вы не можете задать Wavelet
и LiftingScheme
одновременно.
Пример: xr = ilwt2(ll,lh,hl,hh,Wavelet="bior3.5")
использует bior3.5
биоортогональный вейвлет.
Типы данных: char |
string
LiftingScheme
— Схема LiftingliftingScheme
объектСхема Lifting использовать в обратном LWT в виде liftingScheme
объект. Для совершенной реконструкции необходимо задать ту же поднимающуюся схему, что вы раньше получали коэффициенты ll
, lh
, hl
, и hh
.
Вы не можете задать LiftingScheme
и Wavelet
одновременно.
Пример: xr = ilwt2(ll,lh,hl,hh,LiftingScheme=lScheme)
использует lScheme
подъем схемы.
Level
— Уровень реконструкции
(значение по умолчанию) | положительное целое числоУровень реконструкции в виде неотрицательного целого числа, меньше чем или равного length(hh)
- 1. Если вы не задаете уровень, функция устанавливает уровень реконструкции на 0
и xr
совершенная реконструкция сигнала.
Пример: xr = ilwt2(ll,lh,hl,hh,Level=2)
восстанавливает сигнал до уровня 2.
Типы данных: double
Extension
— Дополнительный режим"periodic"
(значение по умолчанию) | "zeropad"
| "symmetric"
Дополнительный режим, чтобы использовать в обратном LWT в виде одного из них:
"periodic"
— Расширение Periodized
"zeropad"
— Дополнение нулями
"symmetric"
— Симметричное расширение
Этот аргумент задает, как расширить сигнал на контурах.
Пример: xr = ilwt2(ll,lh,hl,hh,Extension="zeropad")
задает дополнение нулями.
Int2Int
— Обработка данных с целочисленным знакомfalse
или 0
(значение по умолчанию) | true
или 1
Обработка данных с целочисленным знаком в виде одного из них:
1
TRUE
) — Сохраняют данные с целочисленным знаком
0
ложь
) — Не сохраняют данные с целочисленным знаком
Задайте Int2Int
только если все коэффициенты являются целыми числами.
Пример: xr = ilwt2(ll,lh,hl,hh,Int2Int=true)
сохраняет данные с целочисленным знаком.
xr
— Обратный вейвлет преобразовываетОбратный вейвлет преобразовывает, возвращенный как матрица. xr
имеет ту же размерность как вход, используемый lwt2
функция, чтобы сгенерировать приближение и коэффициенты деталей.
ilwt2
входной синтаксис изменилсяПоведение изменяется в R2021b
ilwt2
входной синтаксис изменился. Используйте аргументы name-value вместо этого.
Функциональность | Результат | Используйте вместо этого | Вопросы совместимости |
---|---|---|---|
X = ilwt2(CA,CH,CV,CD,W) | Ошибки | X = ilwt2(CA,CH,CV,CD,Wavelet=W) | Можно также установить LiftingScheme аргумент значения имени, чтобы получить обратный LWT. |
X = ilwt2(CA,CH,CV,CD,W,LEVEL) | Ошибки | X = ilwt2(CA,CH,CV,CD,Wavelet=W,Level=LEVEL) | Можно также установить Extension и Int2Int аргументы name-value. |
X = ilwt2(AD_In_Place,W) | Ошибки | N/A | Оперативные преобразования больше не поддерживаются. |
[1] Странг, Гильберт и Труун Нгуен. Вейвлеты и Наборы фильтров. Исправленное издание Веллесли, Масса: Wellesley-Кембриджское Нажатие, 1997.
[2] Sweldens, Вим. “Подъем Схемы: Конструкция Вейвлетов Второго поколения”. SIAM Journal на Математическом анализе 29, № 2 (март 1998): 511–46. https://doi.org/10.1137/S0036141095289051.
lwt2
| lwtcoef2
| haart2
| ihaart2
| liftingScheme
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.