dwt2

Одноуровневый дискретный 2D вейвлет преобразовывает

Описание

dwt2 вычисляет одноуровневое 2D разложение вейвлета. Сравнение dwt2 с wavedec2 который может быть более полезен для вашего приложения. Разложение сделано относительно любого конкретный вейвлет (см. wfilters для получения дополнительной информации) или конкретные фильтры разложения вейвлета.

пример

[cA,cH,cV,cD] = dwt2(X,wname) вычисляет одноуровневый 2D дискретный вейвлет преобразовывает (DWT) входных данных X использование wname вейвлет. dwt2 возвращает содействующую матрицу приближения cA и подробно изложите содействующие матрицы cH, cV, и cD (горизонталь, вертикальная, и диагональная, соответственно).

пример

[cA,cH,cV,cD] = dwt2(X,LoD,HiD) вычисляет одноуровневый 2D DWT использование разложения вейвлета фильтр lowpass LoD и highpass фильтруют HiD. Фильтры разложения должны иметь ту же длину и четное число выборок.

[cA,cH,cV,cD] = dwt2(___,'mode',extmode) вычисляет одноуровневый 2D DWT с дополнительным режимом extmode. Включайте этот аргумент после всех других аргументов.

Примечание

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

Примеры

свернуть все

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

load woman
imagesc(X)
colormap(map)

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

Получите одноуровневое 2D дискретное преобразование вейвлета изображения с помощью порядка 4 symlet и периодического расширения.

[cA,cH,cV,cD] = dwt2(X,'sym4','mode','per');

Отобразите вертикальные коэффициенты детали и коэффициенты приближения.

imagesc(cV)
title('Vertical Detail Coefficients')

Figure contains an axes object. The axes object with title Vertical Detail Coefficients contains an object of type image.

imagesc(cA)
title('Approximation Coefficients')

Figure contains an axes object. The axes object with title Approximation Coefficients contains an object of type image.

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

load sculpture
imagesc(X)
colormap gray

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

Сгенерируйте lowpass и highpass фильтры разложения для вейвлета Хаара.

[LoD,HiD] = wfilters('haar','d');

Используйте фильтры, чтобы выполнить одноуровневое 2D разложение вейвлета. Используйте полуточку симметричное расширение. Отобразите приближение и детализируйте коэффициенты.

[cA,cH,cV,cD] = dwt2(X,LoD,HiD,'mode','symh');
subplot(2,2,1)
imagesc(cA)
colormap gray
title('Approximation')
subplot(2,2,2)
imagesc(cH)
colormap gray
title('Horizontal')
subplot(2,2,3)
imagesc(cV)
colormap gray
title('Vertical')
subplot(2,2,4)
imagesc(cD)
colormap gray
title('Diagonal')

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

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

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

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

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

dwtmode('zpd','nodisp')
[cA,cH,cV,cD] = dwt2(imgg,'db2');

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

[cAsym,cHsym,cVsym,cDsym] = dwt2(imgg,'db2','mode','sym');
[max(abs(cA(:)-cAsym(:))) max(abs(cH(:)-cHsym(:))) ...
    max(abs(cV(:)-cVsym(:))) max(abs(cD(:)-cDsym(:)))]
ans =

     0     0     0     0

Неподдерживаемый дополнительный режим, заданный как входной параметр, преобразован в 'sym'. Подтвердите что взятие DWT imgg с 'mode' установите на неподдерживаемый режим также значения по умолчанию к sym дополнительный режим.

[cA,cH,cV,cD] = dwt2(imgg,'db2','mode','spd');
[max(abs(cA(:)-cAsym(:))) max(abs(cH(:)-cHsym(:))) ...
    max(abs(cV(:)-cVsym(:))) max(abs(cD(:)-cDsym(:)))]
ans =

     0     0     0     0

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

dwtmode('per','nodisp')
[cA,cH,cV,cD] = dwt2(imgg,'db2');

Подтвердите текущий дополнительный режим per поддерживается для gpuArray входной параметр.

[cAper,cHper,cVper,cDper] = dwt2(imgg,'db2','mode','per');
[max(abs(cA(:)-cAper(:))) max(abs(cH(:)-cHper(:))) ...
    max(abs(cV(:)-cVper(:))) max(abs(cD(:)-cDper(:)))]
ans =

     0     0     0     0

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

dwtmode(origMode,'nodisp')

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

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Анализ вейвлета использовался для расчета 2D DWT в виде вектора символов или строкового скаляра. Вейвлет анализа от одного из следующих семейств вейвлетов: Daubechies, Coiflets, Symlets, Fejér-Korovkin, Дискретный Мейер, Биоортогональный, и Противоположный Биоортогональный. Смотрите wfilters для вейвлетов, доступных в каждом семействе.

Разложение вейвлета фильтр lowpass в виде ровной длины вектор с действительным знаком. LoD должен иметь ту же длину как HiD.

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

Разложение вейвлета highpass фильтрует в виде ровной длины вектор с действительным знаком. HiD должен иметь ту же длину как LoD.

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

Дополнительный режим, используемый при выполнении DWT в виде одного из следующего:

mode

Режим расширения DWT

'zpd'

Дополнение нулями

'sp0'

Сглаживайте расширение порядка 0

'spd' (or 'sp1')

Сглаживайте расширение порядка 1

'sym' или 'symh'

Симметричное расширение (половина точки): граничное значение симметричная репликация

'symw'

Симметричное расширение (самое главное): граничное значение симметричная репликация

'asym' или 'asymh'

Антисимметричное расширение (половина точки): граничное значение антисимметричная репликация

'asymw'

Антисимметричное расширение (самое главное): граничное значение антисимметричная репликация

'ppd'

Расширение Periodized (1)

'per'

Расширение Periodized (2)

Если длина сигнала является нечетной, wextend добавляет направо дополнительную выборку, которая равна последнему значению и выполняет расширение с помощью 'ppd' режим. В противном случае, 'per' уменьшает до 'ppd'. Это правило также применяется к изображениям.

Глобальная переменная, управляемая dwtmode задает режим расширения по умолчанию.

Пример: [cA,cH,cV,cD] = dwt2(x,'db4','mode','symw');

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

свернуть все

Коэффициенты приближения, возвращенные как массив, размер которого зависит от X. Позвольте sx = size(X) и lf = длина фильтров разложения.

  • Если дополнительный режим DWT установлен в periodization, то этот выход имеет размер ceil(sx/2).

  • Для других дополнительных режимов этот выход имеет размер floor((sx+lf-1)/2).

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

Горизонтальные коэффициенты детали, возвращенные как массив, размер которого зависит от X. Позвольте sx = size(X) и lf = длина фильтров разложения.

  • Если дополнительный режим DWT установлен в periodization, то этот выход имеет размер ceil(sx/2).

  • Для других дополнительных режимов этот выход имеет размер floor((sx+lf-1)/2).

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

Вертикальные коэффициенты детали, возвращенные как массив, размер которого зависит от X. Позвольте sx = size(X) и lf = длина фильтров разложения.

  • Если дополнительный режим DWT установлен в periodization, то этот выход имеет размер ceil(sx/2).

  • Для других дополнительных режимов этот выход имеет размер floor((sx+lf-1)/2).

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

Диагональные коэффициенты детали, возвращенные как массив, размер которого зависит от X. Позвольте sx = size(X) и lf = длина фильтров разложения.

  • Если дополнительный режим DWT установлен в periodization, то этот выход имеет размер ceil(sx/2).

  • Для других дополнительных режимов этот выход имеет размер floor((sx+lf-1)/2).

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

Алгоритмы

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

где

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

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

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

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

Разложение инициализируется путем установки коэффициентов приближения, равных изображению s: cA 0 = s.

Примечание

Чтобы иметь дело с эффектами конца сигнала, введенными основанным на свертке алгоритмом, 1D и 2D DWT используют глобальную переменную, управляемую dwtmode. Эта переменная задает вид дополнительного используемого режима сигнала. Возможные варианты включают дополняющее нуль и симметричное расширение, которое является режимом по умолчанию.

Ссылки

[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