lwt2

2D Подъем вейвлета преобразовывает

    Описание

    пример

    [ll,lh,hl,hh] = lwt2(x) выполняет 2D подъем вейвлета преобразовывает (LWT) действительного - или матричный x с комплексным знаком использование db1 вейвлет. Функция выполняет разложение сначала вдоль строк в x и затем вдоль столбцов. Уровень разложения по умолчанию зависит от размера x. Для получения дополнительной информации смотрите Уровень. Функция возвращает коэффициенты приближения в самой грубой шкале и горизонтали, вертикальные, и диагональные коэффициенты детали уровнем.

    Если x вход с одинарной точностью, числовой тип коэффициентов является одинарной точностью. В противном случае числовой тип является двойной точностью.

    пример

    [___] = lwt2(x,Name=Value) задает опции с помощью одних или нескольких аргументов name-value. Например, lwt2(x,Wavelet="db2",Level=3) выполняет 2D LWT использование db2 вейвлет и разложение уровня 3.

    Примеры

    свернуть все

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

    load xbox
    imagesc(xbox)

    Figure contains an axes object. The axes object contains an object of type image.

    Получите 2D LWT изображения с помощью настроек по умолчанию.

    [ll,lh,hl,hh] = lwt2(xbox);

    Отобразите первые коэффициенты детали уровня.

    subplot(1,3,1)
    imagesc(lh{1})
    title("Horizontal")
    subplot(1,3,2)
    imagesc(hl{1})
    title("Vertical")
    subplot(1,3,3)
    imagesc(hh{1})
    title("Diagonal")

    Figure contains 3 axes objects. Axes object 1 with title Horizontal contains an object of type image. Axes object 2 with title Vertical contains an object of type image. Axes object 3 with title Diagonal contains an object of type image.

    Загрузите изображение RGB. Изображение RGB также известно как изображение истинного цвета. Изображение является трехмерным массивом типа uint8.

    x = imread("ngc6543a.jpg");
    image(x)

    Figure contains an axes object. The axes object contains an object of type image.

    Создайте поднимающуюся схему, сопоставленную с bior3.7 вейвлет. Получите уровень 3 LWT изображения с помощью поднимающейся схемы. Сохраните данные с целочисленным знаком.

    lvl = 3;
    lScheme = liftingScheme("Wavelet","bior3.7");
    [ll,lh,hl,hh] = lwt2(x,LiftingScheme=lScheme,Level=lvl,Int2Int=true);

    Подтвердите, что коэффициенты приближения являются всем оцененным целым числом. Выберите уровень и подтвердите, что коэффициенты всех подробностей на том уровне являются оцененным целым числом.

    approxDiffs = ll-floor(ll);
    max(abs(approxDiffs(:)))
    ans = 0
    
    lev = 2;
    horizDiffs = lh{lev}-floor(lh{lev});
    vertDiffs = hl{lev}-floor(hl{lev});
    diagDiffs = hh{lev}-floor(hh{lev});
    [max(abs(horizDiffs(:))) max(abs(vertDiffs(:))) max(abs(diagDiffs(:)))]
    ans = 1×3
    
         0     0     0
    
    

    Восстановите изображение с помощью красных и синих компонентов коэффициентов. Отобразите реконструкцию.

    llx = ll;
    llx(:,:,2) = 0;
    for k=1:lvl
        lhx{k} = lh{k};
        hlx{k} = hl{k};
        hhx{k} = hh{k};
        lhx{k}(:,:,2) = 0;
        hlx{k}(:,:,2) = 0;
        hhx{k}(:,:,2) = 0;
    end
    xrec = ilwt2(llx,lhx,hlx,hhx,LiftingScheme=lScheme,Int2Int=true);
    imagesc(uint8(xrec))
    title("Reconstruction")

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

    Подтвердите, что реконструкция является оцененным целым числом.

    recDiffs = xrec-floor(xrec);
    max(abs(recDiffs(:)))
    ans = 0
    

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

    свернуть все

    Входные данные в виде действительного - или 2D, 3-D, или 4-D матрица с комплексным знаком. Вход x должен иметь по крайней мере две выборки в размерностях строки и столбца.

    • Если size(x,1) является нечетным, функция расширяет x путем дублирования последней строки.

    • Если size(x,2) является нечетным, функция расширяет последний столбец x путем дублирования последнего столбца.

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

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

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

    Пример: [ll,lh,hl,hh] = lwt2(x,LiftingScheme=lscheme,Level=2)

    Ортогональный или биоортогональный вейвлет, чтобы использовать в 2D LWT в виде вектора символов или строкового скаляра. Смотрите свойство Wavelet liftingScheme для списка поддерживаемых вейвлетов.

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

    Пример: [ll,~,~,hh] = lwt2(x,Wavelet="bior3.5") использует bior3.5 биоортогональный вейвлет.

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

    Схема Lifting использовать в 2D LWT в виде liftingScheme объект.

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

    Пример: [~,lh,hl,~] = lwt2(x,LiftingScheme=lScheme) использует lScheme подъем схемы.

    Уровень разложения 2D LWT в виде положительного целого числа, меньше чем или равного floor(log2(N)), где N = min(size(x,[1 2])/2).

    Уровень разложения по умолчанию зависит от количества строк и столбцов в x.

    • Если количество и строк и столбцов является степенью двойки, функция выполняет 2D LWT вниз, чтобы выровнять log2(min(size(x,[1 2]))).

    • Если количество и строк и столбцов является четным, но по крайней мере один не степень двойки, функция выполняет 2D LWT вниз к floor(log2(N)), где N = min(size(x,[1 2])/2).

    Пример: [ll,~,hl,~] = lwt2(x,Level=4) задает разложение вейвлета уровня 4.

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

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

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

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

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

    Этот аргумент задает как lwt2 расширяет вход на контурах.

    Пример: [~,lh,~,hh] = lwt2(x,Extension="symmetric") задает симметричный дополнительный режим.

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

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

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

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

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

    Пример: [~,lh,hl,hh] = lwt2(x,Int2Int=true) сохраняет данные с целочисленным знаком.

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

    свернуть все

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

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

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

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

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

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

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

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

    Алгоритмы

    На каждом этапе 2D разложения вейвлета, коэффициентов приближения на уровне j разложены на четыре компонента: приближение на уровне j +1 и детали в трех ориентациях (горизонталь, вертикальная, и диагональная). Каждый компонент является результатом свертки к строкам и столбцам уровня приближение j с соответствующей комбинацией lowpass и фильтров highpass, LoD и HiD, соответственно, сопровождаемый путем субдискретизации:

    • Приближение — Применяет операцию свертки к строкам и столбцам с фильтром lowpass (ll)

    • Горизонталь — Применяет операцию свертки к строкам с фильтром lowpass и применяет операцию свертки к столбцам с фильтром highpass (lh)

    • Вертикальный — Применяют операцию свертки к строкам с фильтром highpass и применяют операцию свертки к столбцам с фильтром lowpass (hl)

    • Диагональ — Применяет операцию свертки к строкам и столбцам с фильтром highpass (hh)

    Следующий график описывает основные шаги разложения.

    где

    • — Столбцы Downsample: сохраните ровные индексированные столбцы

    • — Строки Downsample: сохраните даже индексированные строки

    • — Примените операцию свертки к строкам записи с фильтром X

    • — Примените операцию свертки к столбцам записи с фильтром X

    Разложение инициализируется путем установки коэффициентов приближения, равных изображению s: cA 0 = s.

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

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

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

    Ссылки

    [1] Daubechies, Ингрид. Десять лекций по вейвлетам. CBMS-NSF региональный ряд конференции в прикладной математике 61. Филадельфия, Па: общество промышленной и прикладной математики, 1992.

    [2] Mallat, S.G. “Теория для Разложения Сигнала Мультиразрешения: Представление Вейвлета”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту 11, № 7 (июль 1989): 674–93. https://doi.org/10.1109/34.192463.

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

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

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

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

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

    | | | |

    Введенный в R2021b
    Для просмотра документации необходимо авторизоваться на сайте