exponenta event banner

dualtree2

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

Описание

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

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

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

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

пример

[___] = dualtree2(X,Name,Value) задает дополнительные параметры с использованием аргументов пары «имя-значение». Например, 'LevelOneFilter','antonini' задает (9,7) -tap-фильтр Антонини в качестве биоугольного фильтра для использования в анализе первого уровня.

Примеры

свернуть все

Загрузите изображение в оттенках серого.

load mask
imagesc(X)
colormap gray

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

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

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

Отображение коэффициентов масштабирования конечного уровня (нижних частот).

imagesc(a)
colormap gray

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

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

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])

Figure contains 6 axes. Axes 1 with title Orientation: HL contains an object of type image. Axes 2 with title Orientation: HH contains an object of type image. Axes 3 with title Orientation: LH contains an object of type image. Axes 4 with title Orientation: LH contains an object of type image. Axes 5 with title Orientation: HH contains an object of type image. Axes 6 with title Orientation: HL contains an object of type image.

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

свернуть все

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

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

Типы данных: 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) - фильтр Антонини [1]

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

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

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

свернуть все

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

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

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

Ссылки

[1] Антонини, М., М. Барло, П. Матье и И. Даубехиес. «Кодирование изображения с помощью вейвлет-преобразования». Транзакции 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] Ле Галль, Д. и А. Табатабай. «Поддиапазонное кодирование цифровых изображений с использованием симметричных фильтров короткого ядра и методов арифметического кодирования». В ICASSP-88., Международная конференция по акустике, речи и обработке сигналов, 761-64. Нью-Йорк, Нью-Йорк, США: IEEE, 1988. https://doi.org/10.1109/ICASSP.1988.196696.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2020a