dualtree2

Q-сдвиг Кингсбери 2D двойной древовидный комплексный вейвлет преобразовывает

Описание

[A,D] = dualtree2(X) возвращает 2D двойной древовидный комплексный вейвлет преобразовывает (DTCWT) X использование фильтров Q-сдвига Кингсбери. Выход A матрица итогового уровня с действительным знаком, масштабирующего (lowpass) коэффициенты. Выход D L-by-1 массив ячеек коэффициентов вейвлета с комплексным знаком, где L является уровнем преобразования. Для каждого элемента D существует шесть поддиапазонов вейвлета.

DTCWT получен по умолчанию вниз, чтобы выровнять floor(log2(min([H W]))) , где H и W относятся к высоте (размерность строки) и ширина (размерность столбца) X, соответственно. Если любая строка или размерности столбца X являются нечетными, X расширен по тому измерению путем отражения вокруг последней строки или столбца.

По умолчанию, dualtree2 использует почти симметричную биоортогональную пару фильтра вейвлета с длинами 5 (масштабирующий фильтр) и 7 (фильтр вейвлета) для уровня 1 и ортогональной пары фильтра вейвлета К-шифта Гильберта длины 10 для уровней, больше, чем или равный 2.

[___,Ascale] = dualtree2(X) возвращает масштабирующийся (lowpass) коэффициенты на каждом уровне.

пример

[___] = dualtree(X,Name,Value) задает аргументы пары "имя-значение" использования дополнительных опций. Например, 'LevelOneFilter','antonini' задает (9,7) - касаются фильтра Antonini как биоортогонального фильтра, чтобы использовать в анализе первого уровня.

Примеры

свернуть все

Загрузите полутоновое изображение.

load mask
imagesc(X)
colormap gray

Получите двойное древовидное комплексное преобразование вейвлета изображения вниз к четырем уровням разрешения.

[a,d] = dualtree2(X,'Level',4);

Отобразите итоговый уровень, масштабирующий (lowpass) коэффициенты.

imagesc(a)
colormap gray

Отобразите дерево B коэффициенты вейвлета в самой прекрасной шкале. Каждый заголовок подграфика обозначает конкретный поддиапазон ("H" для highpass, "L" для lowpass).

orientation = ["HL","HH","LH","LH","HH","HL"];
for k=1:6
    subplot(3,2,k)
    imagesc(imag(d{1}(:,:,k)))
    title(['Orientation: ' orientation(k)])
    set(gca,'xtick',[])
    set(gca,'ytick',[])
end
colormap gray
set(gcf,'Position',[0 0 560 800])

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

свернуть все

Входные данные в виде матрицы с действительным знаком, трехмерного массива или 4-D массива. X H с действительным знаком-by-W-by-C-by-N массив, где H является высотой или размерностью строки, W является шириной или размерностью столбца, C является количеством каналов, и N является количеством изображений. X должен иметь по крайней мере две выборки в каждой из размерностей строки и столбца.

Пример: если X 256 256 3 2 массивами, X содержит два 256 256 изображения RGB.

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

Аргументы в виде пар имя-значение

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

Пример: 'LevelOneFilter','antonini','Level',4

Уровень разложения в виде положительного целого числа, меньше чем или равного floor(log2(min([H W]))) , где H и W относятся к высоте (размерность строки) и ширина (размерность столбца) X, соответственно. Если незаданный, Level значения по умолчанию к floor(log2(min([H W]))) .

Биоортогональный фильтр, чтобы использовать в анализе первого уровня в виде:

  • 'legall' — Фильтр LeGall 5/3 [3]

  • 'nearsym13_19' — (13,19) - касаются почти ортогонального фильтра [2]

  • 'nearsym5_7' — (5,7) - касаются почти ортогонального фильтра [1]

  • 'antonini' — (9,7) - касаются фильтра Antonini [1]

По умолчанию, dualtree2 использование 'nearsym5_7', почти симметричная биоортогональная пара фильтра с длинами 5 (масштабирующий фильтр) и 7 (фильтр вейвлета).

Ортогональный Гильбертов анализ Q-сдвига фильтрует парную длину, чтобы использовать в уровнях 2 и выше в виде одного из перечисленных значений [2]. По умолчанию, dualtree2 использует ортогональную пару фильтра вейвлета К-шифта Гильберта длины 10.

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

свернуть все

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

Коэффициенты вейвлета, возвращенные как L-by-1 массив ячеек коэффициентов вейвлета с комплексным знаком, где L является уровнем преобразования. Действительные части коэффициентов от дерева A, и мнимые части от дерева B. Для каждого элемента D существует шесть поддиапазонов вейвлета.

Коэффициенты приближения на каждом уровне преобразования, возвращенного как L-by-1 массив ячеек масштабирования с действительным знаком (lowpass) коэффициенты, где L является уровнем преобразования. Если X матрица, каждый элемент D матрица, размерность столбца которой равняется размерности столбца X.

Ссылки

[1] Antonini, M., М. Барло, П. Мэтью и я. Daubechies. “Отобразите Кодирование Используя Преобразование Вейвлета”. Транзакции IEEE на Обработке изображений 1, № 2 (апрель 1992): 205–20. https://doi.org/10.1109/83.136597.

[2] Кингсбери, Ник. “Комплексные Вейвлеты для Анализа Инварианта Сдвига и Фильтрации Сигналов”. Примененный и Вычислительный Гармонический Анализ 10, № 3 (май 2001): 234–53. https://doi.org/10.1006/acha.2000.0343.

[3] Le Gall, D. и А. Тэбэйтабай. “Кодирование поддиапазона Цифровых изображений Используя Симметричные Короткие Фильтры Ядра и Методы Кодирования Арифметики”. В ICASSP-88., Международная конференция по вопросам Акустики, Речи и Обработки сигналов, 761–64. Нью-Йорк, Нью-Йорк, США: IEEE, 1988. https://doi.org/10.1109/ICASSP.1988.196696.

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

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

Введенный в R2020a