wavedec2

2D разложение вейвлета

Описание

пример

[C,S] = wavedec2(X,N,wname) возвращает разложение вейвлета матричного X на уровне N использование вейвлета wname. Выходная структура разложения состоит из вектора разложения вейвлета C и бухгалтерский матричный S, который содержит количество коэффициентов уровнем и ориентацией.

Примечание

Для gpuArray входные параметры, поддерживаемыми режимами является 'symh' ('sym') и 'per'. Если входом является gpuArray, дискретный вейвлет преобразовывает дополнительный режим, используемый wavedec2 значения по умолчанию к 'symh' если текущим дополнительным режимом не является 'per'. Смотрите пример Многоуровневое 2D Дискретное Преобразование Вейвлета на графическом процессоре.

[C,S] = wavedec2(X,N,LoD,HiD) возвращает разложение вейвлета с помощью заданного lowpass, и highpass разложение фильтрует LoD и HiD, соответственно. Смотрите wfilters для деталей.

Примеры

свернуть все

В этом примере показано, как извлечь и изображения на дисплее деталей уровня разложения вейвлета.

Загрузите изображение. Выполните разложение вейвлета уровня 2 изображения с помощью haar вейвлет.

load woman
[c,s]=wavedec2(X,2,'haar');

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

[H1,V1,D1] = detcoef2('all',c,s,1);
A1 = appcoef2(c,s,'haar',1);

Используйте wcodemat перемасштабировать коэффициенты на основе их абсолютных значений. Отобразите перемасштабированные коэффициенты.

V1img = wcodemat(V1,255,'mat',1);
H1img = wcodemat(H1,255,'mat',1);
D1img = wcodemat(D1,255,'mat',1);
A1img = wcodemat(A1,255,'mat',1);

subplot(2,2,1)
imagesc(A1img)
colormap pink(255)
title('Approximation Coef. of Level 1')

subplot(2,2,2)
imagesc(H1img)
title('Horizontal Detail Coef. of Level 1')

subplot(2,2,3)
imagesc(V1img)
title('Vertical Detail Coef. of Level 1')

subplot(2,2,4)
imagesc(D1img)
title('Diagonal Detail Coef. of Level 1')

Figure contains 4 axes objects. Axes object 1 with title Approximation Coef. of Level 1 contains an object of type image. Axes object 2 with title Horizontal Detail Coef. of Level 1 contains an object of type image. Axes object 3 with title Vertical Detail Coef. of Level 1 contains an object of type image. Axes object 4 with title Diagonal Detail Coef. of Level 1 contains an object of type image.

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

[H2,V2,D2] = detcoef2('all',c,s,2);
A2 = appcoef2(c,s,'haar',2);

Используйте wcodemat перемасштабировать коэффициенты на основе их абсолютных значений. Отобразите перемасштабированные коэффициенты.

V2img = wcodemat(V2,255,'mat',1);
H2img = wcodemat(H2,255,'mat',1);
D2img = wcodemat(D2,255,'mat',1);
A2img = wcodemat(A2,255,'mat',1);

figure
subplot(2,2,1)
imagesc(A2img)
colormap pink(255)
title('Approximation Coef. of Level 2')

subplot(2,2,2)
imagesc(H2img)
title('Horizontal Detail Coef. of Level 2')

subplot(2,2,3)
imagesc(V2img)
title('Vertical Detail Coef. of Level 2')

subplot(2,2,4)
imagesc(D2img)
title('Diagonal Detail Coef. of Level 2')

Figure contains 4 axes objects. Axes object 1 with title Approximation Coef. of Level 2 contains an object of type image. Axes object 2 with title Horizontal Detail Coef. of Level 2 contains an object of type image. Axes object 3 with title Vertical Detail Coef. of Level 2 contains an object of type image. Axes object 4 with title Diagonal Detail Coef. of Level 2 contains an object of type image.

Этот пример показывает структуру wavedec2 выходные матрицы.

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

load woman
imagesc(X)
colormap(map)

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

Сохраните текущий дискретный вейвлет, преобразовывают дополнительный режим.

origMode = dwtmode('status','nodisplay');

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

dwtmode('per')
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  WARNING: Change DWT Extension Mode  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                         
*****************************************
**  DWT Extension Mode: Periodization  **
*****************************************
                                         

Выполните разложение уровня 3 изображения с помощью db1 (Хаар) вейвлет.

[c,s] = wavedec2(X,3,'db1');

Возвратите число элементов в изображении X и вектор коэффициентов c. Подтвердите, что число элементов в каждом равно.

numel(X)
ans = 65536
numel(c)
ans = 65536

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

s
s = 5×2

    32    32
    32    32
    64    64
   128   128
   256   256

Дискретный вейвлет сброса преобразовывает дополнительный режим к своему исходному режиму.

dwtmode(origMode,'nodisplay')

Пошлите к Поддержке графического процессора Релизом (Parallel Computing Toolbox) видеть то, что поддерживаются графические процессоры.

Загрузите изображение. Поместите изображение на графический процессор с помощью gpuArray. Сохраните текущий дополнительный режим.

load mask
imgg = gpuArray(X);
origMode = dwtmode('status','nodisp');

Используйте dwtmode изменить дополнительный режим в дополнение нуля. Получите трехуровневый DWT изображения на графическом процессоре с помощью db4 вейвлет.

dwtmode('zpd','nodisp')
[c,s] = wavedec2(imgg,3,'db4');

Текущий дополнительный режим zpd не поддерживается для gpuArray входной параметр. Поэтому DWT вместо этого выполняется с помощью sym дополнительный режим. Чтобы подтвердить это, установите дополнительный режим на sym и возьмите DWT noisdoppg, затем сравните с предыдущим результатом.

dwtmode('sym','nodisp')
[csym,ssym] = wavedec2(imgg,3,'db4');
[max(abs(c-csym)) max(abs(s-ssym))]
ans =

     0     0     0

Установите текущий дополнительный режим на per и получите трехуровневый DWT imgg. Дополнительный режим per поддерживается для gpuArray входной параметр. Подтвердите, что результат отличается от sym результаты.

dwtmode('per','nodisp')
[cper,sper] = wavedec2(imgg,3,'db4');
[length(csym) ; length(cper)]
ans = 2×1

       71542
       65536

ssym
ssym = 5×2

    38    38
    38    38
    69    69
   131   131
   256   256

sper
sper = 5×2

    32    32
    32    32
    64    64
   128   128
   256   256

Восстановите дополнительный режим к исходной установке.

dwtmode(origMode,'nodisp')

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

свернуть все

Входные данные в виде M с действительным знаком-by-N матрица, представляющая индексируемое изображение или M-by-N-by-3 массив, представляющий изображение истинного цвета. Для получения дополнительной информации об изображениях истинного цвета смотрите RGB (Истинный цвет) Изображения.

Уровень разложения в виде положительного целого числа. wavedec2 не осуществляет ограничение максимального уровня. Использование wmaxlev определить максимальный уровень разложения, возможный из матричного X использование вейвлета wname. Максимальный уровень в последний раз находится на одном уровне, для которого по крайней мере один коэффициент правилен.

Анализ вейвлета в виде вектора символов или строкового скаляра.

Примечание

wavedec2 поддержки только (ортогональный) Тип 1 или Тип 2 (биоортогональные) вейвлеты. Смотрите wfilters для списка ортогональных и биоортогональных вейвлетов.

Фильтры разложения вейвлета сопоставили с ортогональным или биоортогональным вейвлетом в виде ровной длины векторы с действительным знаком. LoD фильтр разложения lowpass и HiD highpass фильтр разложения. Смотрите wfilters для деталей.

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

свернуть все

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

Векторный C организован как A (N), H (N), V (NDN ), H (N- 1), V (N- 1), D (N- 1), …, H (1), V (1), D (1), где A, H, V и D - каждый вектор-строка. Каждый вектор является постолбцовым устройством хранения данных матрицы.

  • A содержит коэффициенты приближения.

  • H содержит горизонтальные коэффициенты детали.

  • V содержит вертикальные коэффициенты детали.

  • D содержит диагональные коэффициенты детали.

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

  • S(1,:) = размер коэффициентов приближения (N).

  • S(i,:) = размер коэффициентов детали (N-i+2) для i = 2... N+1 и S(N+2,:) = size(X).

Следующая схема показывает отношение между C и S в разложении вейвлета 512 512 матрицы.

Когда X представляет индексируемое изображение, выходные массивы cA, cH, cV, и cD является m-by-n матрицы. Когда X представляет изображение истинного цвета, это - m-by-n-by-3 массив, где каждый m-by-n матрица представляет красную, зеленую, или синюю цветную плоскость, конкатенированную по третьему измерению. Размер векторного C и размер матричного S зависьте от типа анализируемого изображения.

Для изображения истинного цвета, вектор разложения C и соответствующий бухгалтерский матричный S может быть представлен как показано.

Алгоритмы

Для изображений алгоритм, похожий на одномерный случай, возможен для двумерных вейвлетов и масштабирующихся функций, полученных из одномерных векторов продуктом тензора. Этот вид двумерного DWT приводит к разложению коэффициентов приближения на уровне j в четырех компонентах: приближение на уровне j +1 и детали в трех ориентациях (горизонталь, вертикальная, и диагональная).

График описывает основной шаг разложения для изображений:

где

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

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

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

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

и

Инициализация: cA 0 = s.

Так, для J = 2, двумерное дерево вейвлета имеет форму

Ссылки

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

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

[3] Мейер, Y. Вейвлеты и операторы. Переведенный Д. Х. Сэлинджером. Кембридж, Великобритания: Издательство Кембриджского университета, 1995.

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

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

| | | |

Представлено до R2006a