exponenta event banner

wavedec2

2-D вейвлет-декомпозиция

Описание

пример

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

Примечание

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

[C,S] = wavedec2(X,N,LoD,HiD) возвращает вейвлет-декомпозицию с использованием указанных фильтров декомпозиции нижних и верхних частот 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. Axes 1 with title Approximation Coef. of Level 1 contains an object of type image. Axes 2 with title Horizontal Detail Coef. of Level 1 contains an object of type image. Axes 3 with title Vertical Detail Coef. of Level 1 contains an object of type image. Axes 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. Axes 1 with title Approximation Coef. of Level 2 contains an object of type image. Axes 2 with title Horizontal Detail Coef. of Level 2 contains an object of type image. Axes 3 with title Vertical Detail Coef. of Level 2 contains an object of type image. Axes 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. The axes 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')

Сведения о поддерживаемых графических процессорах см. в документе Поддержка графического процессора по выпуску (Панель инструментов параллельных вычислений).

Загрузите изображение. Поместите изображение на графический процессор с помощью 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-на-N, представляющая индексированное изображение, или массив M-by-N-by-3, представляющий изображение с трюэколором. Дополнительные сведения об изображениях truecolor см. в разделе Изображения RGB (Truecolor).

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

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

Примечание

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

Фильтры вейвлет-декомпозиции, связанные с ортогональным или биортогональным вейвлетом, заданными как действительные векторы четной длины. LoD является фильтром разложения нижних частот, и HiD - фильтр разложения верхних частот. Посмотрите wfilters для получения подробной информации.

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

свернуть все

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

Вектор C организован как A (N), Н (N), В (N), D (N), Н (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-на-n. Когда X представляет собой триколорное изображение, это массив m-by-n-by-3, где каждая матрица m-by-n представляет собой красную, зеленую или синюю цветовую плоскость, конкатенированную вдоль третьего размера. Размер вектора C и размер матрицы S зависит от типа анализируемого изображения.

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

Алгоритмы

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

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

где

  • - Столбцы с пониженной выборкой: сохранить столбцы с четной индексацией.

  • - Строки с пониженной выборкой: сохранить строки с четным индексом.

  • - Свернуть с фильтром X строки записи.

  • - Свернуть с фильтром X столбцы записи.

и

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

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

Ссылки

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

[2] Маллат, С.Г. «Теория разложения сигнала с множественным разрешением: вейвлет-представление». IEEE Transactions on Pattern Analysis and Machine Intelligence 11, No. 7 (июль 1989 года): 674-93. https://doi.org/10.1109/34.192463.

[3] Мейер, Я. Вейвлетс и Операторы. Перевёл Д. Х. Сэлинджер. Кембридж, Великобритания: Cambridge University Press, 1995.

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

..

См. также

| | | |

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