exponenta event banner

dualtree3

3-D двойное древовидное комплексное вейвлет-преобразование

Описание

[a,d] = dualtree3(x) возвращает 3-D двойное комплексное вейвлет-преобразование x на максимальном уровне, floor(log2(min(size(x)))).

[a,d] = dualtree3(x,level) возвращает 3-D вейвлет-преобразование двойного дерева вниз к level.

пример

[a,d] = dualtree3(___,Name,Value) задает параметры, использующие аргументы пары имя-значение в дополнение к любому из входных аргументов в предыдущих синтаксисах.

пример

[a,d] = dualtree3(___,'excludeL1') исключает вейвлет первого уровня (коэффициенты детализации). Исключение вейвлет-коэффициентов первого уровня может ускорить алгоритм и сохранить память. Первый уровень не демонстрирует направленной селективности уровней 2 и выше. Свойство совершенной реконструкции вейвлет-преобразования с двойным деревом сохраняется только в том случае, если включены вейвлет-коэффициенты первого уровня. Если этот параметр не указан, или добавить 'includeL1', то функция включает в себя коэффициенты первого уровня.

Примеры

свернуть все

Создание набора объемных данных. Постройте график нескольких поперечных сечений данных, показанных сверху. Данные не симметричны относительно оси X или оси Y.

xl = 64;

xx = linspace(-5,5,xl);

[x,y,z] = meshgrid(xx);

G = (x+3*y)./(1+exp((x.^2+2*y.^2+z.^2)-10));

for k = 1:16
    subplot(4,4,k)
    surf(xx,xx,G(:,:,4*k))
    view(2)
    shading interp
    title(['z = ' num2str(xx(4*k),2)])
end

Figure contains 16 axes. Axes 1 with title z = -4.5 contains an object of type surface. Axes 2 with title z = -3.9 contains an object of type surface. Axes 3 with title z = -3.3 contains an object of type surface. Axes 4 with title z = -2.6 contains an object of type surface. Axes 5 with title z = -2 contains an object of type surface. Axes 6 with title z = -1.3 contains an object of type surface. Axes 7 with title z = -0.71 contains an object of type surface. Axes 8 with title z = -0.079 contains an object of type surface. Axes 9 with title z = 0.56 contains an object of type surface. Axes 10 with title z = 1.2 contains an object of type surface. Axes 11 with title z = 1.8 contains an object of type surface. Axes 12 with title z = 2.5 contains an object of type surface. Axes 13 with title z = 3.1 contains an object of type surface. Axes 14 with title z = 3.7 contains an object of type surface. Axes 15 with title z = 4.4 contains an object of type surface. Axes 16 with title z = 5 contains an object of type surface.

Вычислите 3-D преобразование данных в двойное дерево до уровня 4. Укажите длину пары фильтров Гильберта Q-сдвига, равную 14.

[a,d] = dualtree3(G,4,'FilterLength',14);

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

m = 1;

for k = 1:8
    subplot(4,4,2*k-1)
    surf(real(d{m}(:,:,3*k)))

    view(2)
    shading interp
    axis tight
    title(['Re d\{1\}, n = ' int2str(3*k)])

    subplot(4,4,2*k)
    surf(imag(d{m}(:,:,3*k)))

    view(2)
    shading interp
    axis tight
    title(['Im d\{1\}, n = ' int2str(3*k)])
end

Figure contains 16 axes. Axes 1 with title Re d\{1\}, n = 3 contains an object of type surface. Axes 2 with title Im d\{1\}, n = 3 contains an object of type surface. Axes 3 with title Re d\{1\}, n = 6 contains an object of type surface. Axes 4 with title Im d\{1\}, n = 6 contains an object of type surface. Axes 5 with title Re d\{1\}, n = 9 contains an object of type surface. Axes 6 with title Im d\{1\}, n = 9 contains an object of type surface. Axes 7 with title Re d\{1\}, n = 12 contains an object of type surface. Axes 8 with title Im d\{1\}, n = 12 contains an object of type surface. Axes 9 with title Re d\{1\}, n = 15 contains an object of type surface. Axes 10 with title Im d\{1\}, n = 15 contains an object of type surface. Axes 11 with title Re d\{1\}, n = 18 contains an object of type surface. Axes 12 with title Im d\{1\}, n = 18 contains an object of type surface. Axes 13 with title Re d\{1\}, n = 21 contains an object of type surface. Axes 14 with title Im d\{1\}, n = 21 contains an object of type surface. Axes 15 with title Re d\{1\}, n = 24 contains an object of type surface. Axes 16 with title Im d\{1\}, n = 24 contains an object of type surface.

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

m = 2;

for k = 1:8
    subplot(4,4,2*k-1)
    surf(real(d{m}(:,:,3*k)))

    view(2)
    shading interp
    axis tight
    title(['Re d\{2\}, n = ' int2str(3*k)])

    subplot(4,4,2*k)
    surf(imag(d{m}(:,:,3*k)))

    view(2)
    shading interp
    axis tight
    title(['Im d\{2\}, n = ' int2str(3*k)])
end

Figure contains 16 axes. Axes 1 with title Re d\{2\}, n = 3 contains an object of type surface. Axes 2 with title Im d\{2\}, n = 3 contains an object of type surface. Axes 3 with title Re d\{2\}, n = 6 contains an object of type surface. Axes 4 with title Im d\{2\}, n = 6 contains an object of type surface. Axes 5 with title Re d\{2\}, n = 9 contains an object of type surface. Axes 6 with title Im d\{2\}, n = 9 contains an object of type surface. Axes 7 with title Re d\{2\}, n = 12 contains an object of type surface. Axes 8 with title Im d\{2\}, n = 12 contains an object of type surface. Axes 9 with title Re d\{2\}, n = 15 contains an object of type surface. Axes 10 with title Im d\{2\}, n = 15 contains an object of type surface. Axes 11 with title Re d\{2\}, n = 18 contains an object of type surface. Axes 12 with title Im d\{2\}, n = 18 contains an object of type surface. Axes 13 with title Re d\{2\}, n = 21 contains an object of type surface. Axes 14 with title Im d\{2\}, n = 21 contains an object of type surface. Axes 15 with title Re d\{2\}, n = 24 contains an object of type surface. Axes 16 with title Im d\{2\}, n = 24 contains an object of type surface.

Инвертируйте преобразование, задав одинаковую длину пары фильтров. Проверьте идеальную реконструкцию.

xrec = idualtree3(a,d,'FilterLength',14);
max(abs(xrec(:)-G(:)))
ans = 1.4211e-14

Загрузить набор МРТ-измерений головы человека. Усечение данных таким образом, чтобы они были ровными вдоль третьего измерения. Вычислите 3-D преобразование двойного дерева, исключая вейвлет-коэффициенты первого уровня.

load wmri

[A,D] = dualtree3(X(:,:,1:26),2,'excludeL1');

Восстановите данные, инвертировав преобразование. Установите коэффициенты масштабирования конечного уровня явно в 0. Отображение равномерно расположенных выбранных восстановленных изображений.

imrec = idualtree3(A*0,D);

colormap bone
for kj = 1:9
    subplot(3,3,kj)
    surf(imrec(:,:,3*kj-2))
    shading interp
    view(2)
    axis tight off
end

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

свернуть все

Входные данные, заданные как массив вещественных 3-D. Все три измерения x должно быть четным и больше или равным 4.

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

Уровень преобразования, заданный как положительное целое число, большее или равное 2 и меньшее или равное floor(log2(min(size(x)))).

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

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

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

Пример: 'LevelOneFilter','legall','FilterLength',6 вычисляет преобразование с помощью фильтров анализа LeGall с длиной масштабирования 5 и длиной вейвлета 3 на уровне 1 и длиной - 6 фильтров Q-сдвига на уровнях 2 и выше.

Длина Q-сдвиговой пары фильтров Гильберта, определяемая как разделенная запятыми пара, состоящая из 'FilterLength' и один из 6, 10, 14, 16 или 18. dualtree3 использует ортогональную пару фильтров Гильберта с Q-сдвигом длины 'FilterLength' для уровней 2 и выше.

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

Фильтр биорогонального анализа первого уровня, указанный как пара, разделенная запятыми, состоящая из 'LevelOneFilter' и символьный вектор или строку. По умолчанию dualtree3 использует для уровня 1 околосимметричный биоргональный вейвлет-фильтр с длинами 5 (масштабный фильтр) и 7 (вейвлет-фильтр).

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

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

свернуть все

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

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

Вейвлет-коэффициенты, возвращаемые как 1-by-level массив ячеек. Существует 28 вейвлет-поддиапазонов в 3-D преобразовании двойного дерева на каждом уровне.

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

Ссылки

[1] Чен, H. и Н. Г. Кингсбери. «Эффективная регистрация нежестких 3-D органов». Транзакции IEEE ® при обработке изображений. Том 21, январь 2012 г., стр. 262-272.

[2] Кингсбери, Н. Г. «Сложные вейвлеты для инвариантного анализа сдвига и фильтрации сигналов». Журнал прикладного и вычислительного гармонического анализа, том 10, номер 3, май 2001, стр. 234-253.

Представлен в R2017a