ilwt2

Обратный 2D поднимающийся вейвлет преобразовывает

    Описание

    пример

    xr = ilwt2(ll,lh,hl,hh) возвращается 2D обратный вейвлет преобразовывают на основе коэффициентов приближения, ll, и горизонталь (lh), вертикальный (hl), и диагональ (hh) коэффициенты вейвлета. По умолчанию, ilwt2 принимает, что вы использовали поднимающуюся схему, сопоставленную с db1 вейвлет, чтобы получить коэффициенты. Если вы не изменили коэффициенты, xr совершенная реконструкция сигнала.

    пример

    xr = ilwt2(ll,lh,hl,hh,Name=Value) задает опции с помощью одних или нескольких аргументов name-value. Например, ilwt2(ll,lh,hl,hh,LiftingScheme=lscheme,Level=3) задает lscheme подъем схемы и обратного преобразования до уровня 3.

    Примеры

    свернуть все

    Загрузите и отобразитесь 128 128 xbox изображение.

    load xbox
    imagesc(xbox)
    title("Original Image")

    Figure contains an axes object. The axes object with title Original Image contains an object of type 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")

    Figure contains an axes object. The axes object with title Level 1 Reconstruction contains an object of type image.

    Получите обратный 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

    Figure contains 9 axes objects. Axes object 1 with title Z = 1 contains an object of type image. Axes object 2 with title Z = 4 contains an object of type image. Axes object 3 with title Z = 7 contains an object of type image. Axes object 4 with title Z = 10 contains an object of type image. Axes object 5 with title Z = 13 contains an object of type image. Axes object 6 with title Z = 16 contains an object of type image. Axes object 7 with title Z = 19 contains an object of type image. Axes object 8 with title Z = 22 contains an object of type image. Axes object 9 with title Z = 25 contains an object of type image.

    По умолчанию, 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")

    Figure contains 2 axes objects. Axes object 1 with title Original contains an object of type image. Axes object 2 with title Level 1 Reconstruction contains an object of type image.

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

    свернуть все

    Коэффициенты приближения в самой грубой шкале в виде скаляра, вектора или матрицы. Коэффициентами является выход lwt2.

    Типы данных: single | double
    Поддержка комплексного числа: Да

    Горизонтальные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы lh в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2.

    Типы данных: single | double
    Поддержка комплексного числа: Да

    Вертикальные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы hl в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2.

    Типы данных: single | double
    Поддержка комплексного числа: Да

    Диагональные коэффициенты детали уровнем в виде LEV-by-1 массив ячеек, где LEV является уровнем разложения. Элементы hh в порядке уменьшающегося разрешения. Коэффициентами является выход lwt2.

    Типы данных: single | double
    Поддержка комплексного числа: Да

    Аргументы name-value

    Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.

    Пример: xr = ilwt2(ll,lh,hl,hh,Wavelet="db2",Int2Int=true)

    Ортогональный или биоортогональный вейвлет, чтобы использовать в обратном LWT в виде вектора символов или строкового скаляра. Смотрите свойство Wavelet liftingScheme для списка поддерживаемых вейвлетов. Для совершенной реконструкции необходимо задать тот же вейвлет, что вы раньше получали коэффициенты ll, lh, hl, и hh.

    Вы не можете задать Wavelet и LiftingScheme одновременно.

    Пример: xr = ilwt2(ll,lh,hl,hh,Wavelet="bior3.5") использует bior3.5 биоортогональный вейвлет.

    Типы данных: char | string

    Схема Lifting использовать в обратном LWT в виде liftingScheme объект. Для совершенной реконструкции необходимо задать ту же поднимающуюся схему, что вы раньше получали коэффициенты ll, lh, hl, и hh.

    Вы не можете задать LiftingScheme и Wavelet одновременно.

    Пример: xr = ilwt2(ll,lh,hl,hh,LiftingScheme=lScheme) использует lScheme подъем схемы.

    Уровень реконструкции в виде неотрицательного целого числа, меньше чем или равного length(hh)- 1. Если вы не задаете уровень, функция устанавливает уровень реконструкции на 0 и xr совершенная реконструкция сигнала.

    Пример: xr = ilwt2(ll,lh,hl,hh,Level=2) восстанавливает сигнал до уровня 2.

    Типы данных: double

    Дополнительный режим, чтобы использовать в обратном LWT в виде одного из них:

    • "periodic" — Расширение Periodized

    • "zeropad" — Дополнение нулями

    • "symmetric" — Симметричное расширение

    Этот аргумент задает, как расширить сигнал на контурах.

    Пример: xr = ilwt2(ll,lh,hl,hh,Extension="zeropad") задает дополнение нулями.

    Обработка данных с целочисленным знаком в виде одного из них:

    • 1 TRUE) — Сохраняют данные с целочисленным знаком

    • 0 ложь) — Не сохраняют данные с целочисленным знаком

    Задайте Int2Int только если все коэффициенты являются целыми числами.

    Пример: xr = ilwt2(ll,lh,hl,hh,Int2Int=true) сохраняет данные с целочисленным знаком.

    Выходные аргументы

    свернуть все

    Обратный вейвлет преобразовывает, возвращенный как матрица. xr имеет ту же размерность как вход, используемый lwt2 функция, чтобы сгенерировать приближение и коэффициенты деталей.

    Вопросы совместимости

    развернуть все

    Поведение изменяется в R2021b

    Ссылки

    [1] Странг, Гильберт и Труун Нгуен. Вейвлеты и Наборы фильтров. Исправленное издание Веллесли, Масса: Wellesley-Кембриджское Нажатие, 1997.

    [2] Sweldens, Вим. “Подъем Схемы: Конструкция Вейвлетов Второго поколения”. SIAM Journal на Математическом анализе 29, № 2 (март 1998): 511–46. https://doi.org/10.1137/S0036141095289051.

    Расширенные возможности

    Генерация кода C/C++
    Генерация кода C и C++ с помощью MATLAB® Coder™.

    Смотрите также

    | | | |

    Введенный в R2021b