swt2

Дискретный стационарный вейвлет преобразовывает 2D

Синтаксис

SWC = swt2(X,N,'wname')
[A,H,V,D] = swt2(X,N,'wname')
SWC = swt2(X,N,Lo_D,Hi_D)
[A,H,V,D] = swt2(X,N,Lo_D,Hi_D)

Описание

swt2 выполняет многоуровневое 2D стационарное разложение вейвлета с помощью или ортогонального или биоортогонального вейвлета. Задайте вейвлет с помощью его имени ('wname', смотрите wfilters для получения дополнительной информации) или его фильтры разложения.

SWC = swt2(X,N,'wname') или [A,H,V,D] = swt2(X,N,'wname') вычислите стационарное разложение вейвлета 2D или 3-D матричного X с действительным знаком на уровне N, использование 'wname'.

Если X 3-D матрица, третья размерность X должен равняться 3.

N должно быть строго положительное целое число (см. wmaxlev для получения дополнительной информации), и 2 Н должен разделить size(X,1) и size(X,2).

Размерность X и уровень N определите размерности выходных параметров.

  • Если X 2D матрица и N больше 1, выходные параметры [A,H,V,D] трехмерные массивы, которые содержат коэффициенты:

    • Для 1 i N, выходная матрица A(:,:,i) содержит коэффициенты приближения уровня i.

    • Выходные матрицы H(:,:,i)vi и D(:,:,i) содержите коэффициенты деталей уровня i (горизонталь, вертикальная, и диагональная):

      SWC = [H(:,:,1:N) ; V(:,:,1:N) ; D(:,:,1:N) ; A(:,:,N)]
      

  • Если X 2D матрица и N равно 1, выходные параметры [A,H,V,D] 2D массивы где A содержит коэффициенты приближения и HV, и D содержите горизонталь, вертикальные, и диагональные коэффициенты детали, соответственно.

  • Если X 3-D матрица размерности m- n- 3, и N больше 1, выходные параметры [A,H,V,D] 4-D массивы размерности m- n- 3 N, которые содержат коэффициенты:

    • Для 1 i N и j = 1, 2, 3, выходная матрица A(:,:,j,i) содержит коэффициенты приближения уровня i.

    • Выходные матрицы H(:,:,j,i), V(:,:,j,i) и D(:,:,j,i) содержите коэффициенты деталей уровня i (горизонталь, вертикальная, и диагональная):

      SWC = [H(:,:,1:3,1:N) ; V(:,:,1:3,1:N) ; D(:,:,1:3,1:N) ; A(:,:,1:3,N)]
      

  • Если X 3-D матрица размерности m- n- 3, и N равно 1, выходные параметры [A,H,V,D] 4-D массивы размерности m- n- 1 3, которые содержат коэффициенты:

    • Для j = 1, 2, 3, выходная матрица A(:,:,1,j) содержит коэффициенты приближения.

    • Выходные матрицы H(:,:,1,j), V(:,:,1,j) и D(:,:,1,j) содержите горизонталь, вертикальные, и диагональные коэффициенты детали, соответственно.

      SWC = [H(:,:,1,1:3) ; V(:,:,1,1:3) ; D(:,:,1,1:3) ; A(:,:,1,1:3)]
      

Примечание

SWC = swt2(X,N,Lo_D,Hi_D) или [A,H,V,D] = swt2(X,N,Lo_D,Hi_D), вычисляет стационарное разложение вейвлета как в предыдущем синтаксисе, учитывая эти фильтры, как введено:

  • Lo_D разложение фильтр lowpass.

  • Hi_D фильтр высоких частот разложения.

Lo_D и Hi_D должна быть та же длина.

Примечание

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

Примеры

свернуть все

Извлечение и изображения на дисплее стационарных коэффициентов уровня разложения вейвлета. Сначала загрузите и отобразите оригинальное изображение. Затем выполните стационарное разложение вейвлета изображения на уровне 2 с помощью db6.

load woman
imagesc(X)
colormap(map)
title('Original')

[ca,chd,cvd,cdd] = swt2(X,2,'db6');

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

A1 = wcodemat(ca(:,:,1),255);
H1 = wcodemat(chd(:,:,1),255);
V1 = wcodemat(cvd(:,:,1),255);
D1 = wcodemat(cdd(:,:,1),255);

A2 = wcodemat(ca(:,:,2),255);
H2 = wcodemat(chd(:,:,2),255);
V2 = wcodemat(cvd(:,:,2),255);
D2 = wcodemat(cdd(:,:,2),255);

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

subplot(2,2,1)
imagesc(A1)
title('Approximation Coef. of Level 1')

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

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

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

subplot(2,2,1)
imagesc(A2)
title('Approximation Coef. of Level 2')

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

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

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

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

Загрузите в изображении истинного цвета. Изображение является трехмерным массивом типа uint8. Начиная с swt2 требует первых и вторых измерений и являются делимыми степенью 2, извлекают фрагмент изображения и просматривают его.

imdata = imread('ngc6543a.jpg');
x = imdata(1:512,1:512,:);
imagesc(x)

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

[a,h,v,d] = swt2(x,4,'db4');
size(a)
ans = 1×4

   512   512     3     4

size(h)
ans = 1×4

   512   512     3     4

size(v)
ans = 1×4

   512   512     3     4

size(d)
ans = 1×4

   512   512     3     4

Выходные массивы все имеют тип double. Просмотрите коэффициенты приближения уровня 2. Поскольку коэффициенты приближения имеют тип double, снимите их в качестве uint8, который является типом данных изображения.

figure
imagesc(uint8(a(:,:,:,2)))
title('Level 2 Approximation Coefficients')

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

rec = iswt2(a,h,v,d,'db4');
maxdiff = max(abs(uint8(rec(:))-x(:)));
disp(['maximum difference = ' num2str(maxdiff)])
maximum difference = 0

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

[a,h,v,d] = swt2(x,1,'db4');
size(a)
ans = 1×4

   512   512     1     3

size(h)
ans = 1×4

   512   512     1     3

size(v)
ans = 1×4

   512   512     1     3

size(d)
ans = 1×4

   512   512     1     3

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

asqueeze = squeeze(a);
size(asqueeze)
ans = 1×3

   512   512     3

figure
imagesc(uint8(asqueeze))
title('Approximation Coefficients')

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

rec = iswt2(a,h,v,d,'db4');
maxdiff = max(abs(uint8(rec(:))-x(:)));
disp(['maximum difference = ' num2str(maxdiff)])
maximum difference = 0

В этом примере показано, как восстановить изображение истинного цвета от одноуровневого стационарного разложения вейвлета с помощью 3-D приближения и детализировать массивы коэффициентов.

Загрузите в изображении истинного цвета. Изображение является трехмерным массивом типа uint8. Начиная с swt2 требует первых и вторых измерений и являются делимыми степенью 2, извлекают фрагмент изображения и просматривают его.

imdata = imread('ngc6543a.jpg');
x = imdata(1:512,1:512,:);
imagesc(x)

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

[a,h,v,d] = swt2(x,1,'db4');
size(a)
ans = 1×4

   512   512     1     3

size(h)
ans = 1×4

   512   512     1     3

size(v)
ans = 1×4

   512   512     1     3

size(d)
ans = 1×4

   512   512     1     3

Сожмите массивы коэффициентов, чтобы удалить их одноэлементные размерности. Отметьте размерности сжатых массивов.

asq = squeeze(a);
hsq = squeeze(h);
vsq = squeeze(v);
dsq = squeeze(d);
size(asq)
ans = 1×3

   512   512     3

size(hsq)
ans = 1×3

   512   512     3

size(vsq)
ans = 1×3

   512   512     3

size(dsq)
ans = 1×3

   512   512     3

Так, чтобы iswt2 может правильно восстановить trueimage от новых массивов коэффициентов, вставить одноэлементную размерность путем изменения размерность сжатых массивов. Восстановите изображение с измененными массивами коэффициентов.

a2 = reshape(asq,[512,512,1,3]);
h2 = reshape(hsq,[512,512,1,3]);
v2 = reshape(vsq,[512,512,1,3]);
d2 = reshape(dsq,[512,512,1,3]);
rec = iswt2(a2,h2,v2,d2,'db4');

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

maxdiff = max(abs(uint8(rec(:))-x(:)));
disp(['maximum difference = ' num2str(maxdiff)])
maximum difference = 0

Советы

Когда X представляет индексируемое изображение, X m- n матрица. Если уровень разложения N больше 1, выходные массивы SWC или приблизительно, cH, cV, и CD является m- n- N массивы. Если уровень разложения N равно 1, выходные массивы SWC или приблизительно, cH, cV, и CD является m- n массивы.

Когда X представляет изображение истинного цвета, это становится m- n- 3 массива. Этим массивом является m- n- 3 массива, где каждый m- n матрица представляет красную, зеленую, или синюю цветную плоскость, конкатенированную по третьему измерению. Если уровень разложения N больше 1, выходные массивы SWC или приблизительно, cH, cV, и CD является m- n- 3 N. Если уровень разложения N равно 1, выходные массивы SWC или приблизительно, cH, cV, и CD является m- n- 1 3.

Для получения дополнительной информации о форматах изображения смотрите image и imfinfo страницы с описанием.

Алгоритмы

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

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

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

Вопросы совместимости

развернуть все

Поведение изменяется в R2017b

Ссылки

Нэзон, Г.П.; Б.В. Сильверман (1995), “Стационарный вейвлет преобразовывает и некоторые статистические приложения”, Примечания Лекции в Статистике, 103, стр 281–299.

Койфман, Р.Р.; Донохо, D.L. (1995), “Шумоподавление инварианта перевода”, Примечания Лекции в Статистике, 103, стр 125–150.

Pesquet, Дж.К.; Х. Крим, Х. Карфэйтан (1996), “Независимые от времени ортонормированные представления вейвлета”, Знак Сделки IEEE. Proc., издание 44, 8, стр 1964–1970.

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

| |

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