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)

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

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

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

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

imagesc(cA)
title('Approximation Coefficients')

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

load sculpture
imagesc(X)
colormap gray

Сгенерируйте 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')

Пошлите к Поддержке графического процессора Релизом (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