dwt2

Одноуровневое дискретное 2-D вейвлет

Описание

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

пример

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

пример

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

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

Примечание

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

Примеры

свернуть все

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

load woman
imagesc(X)
colormap(map)

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

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

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

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

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

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

imagesc(cA)
title('Approximation Coefficients')

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

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

load sculpture
imagesc(X)
colormap gray

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

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

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

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

[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. Axes 1 with title Approximation contains an object of type image. Axes 2 with title Horizontal contains an object of type image. Axes 3 with title Vertical contains an object of type image. Axes 4 with title Diagonal contains an object of type image.

Обратитесь к разделу Поддержка GPU по версии (Parallel Computing Toolbox), чтобы узнать, какие графические процессоры поддерживаются.

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

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

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

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

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

Lowpass разложения Вейвлет, заданный как реальный вектор четной длины. LoD должна иметь ту же длину, что и HiD.

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

Фильтр highpass разложения Вейвлет, заданный как вектор с четной длиной, действительное значение. HiD должна иметь ту же длину, что и LoD.

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

Режим расширения, используемый при выполнении DWT, задается как один из следующих:

mode

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

'zpd'

Нулевой внутренний номер

'sp0'

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

'spd' (или 'sp1')

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

'sym' или 'symh'

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

'symw'

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

'asym' или 'asymh'

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

'asymw'

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

'ppd'

Периодическое расширение (1)

'per'

Периодическое расширение (2)

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы

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

где

  • - Понижающий отсчет столбцов: сохраните четные индексированные столбцы

  • - Понижающие строки: сохраните четные индексированные строки

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

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

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

Примечание

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

Ссылки

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

[2] Mallat, S.G. «A Theory for Multirresolution Signal Decomposition: The Wavelet Representation». Транзакции IEEE по анализу шаблонов и машинной разведке 11, № 7 (июль 1989): 674-93. https://doi.org/10.1109/34.192463.

[3] Meyer, Y. Wavelets and Operators. Перевод Д. Х. Сэлинджера. Кембридж, Великобритания: Cambridge University Press, 1995.

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

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