iswt2

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

Синтаксис

X = iswt2(SWC,'wname')
X = iswt2(A,H,V,D,wname)
X = iswt2(A(:,:,end),H,V,D,'wname')
X = iswt2(A(:,:,1,:),H,V,D,'wname')
X = iswt2(SWC,Lo_R,Hi_R)
X = iswt2(A,H,V,D,Lo_R,Hi_R)
X = iswt2(A(:,:,end),H,V,D,Lo_R,Hi_R)
X = iswt2(A(:,:,1,:),H,V,D,'wname')

Описание

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

X = iswt2(SWC,'wname') или X = iswt2(A,H,V,D,wname) восстанавливает X сигнала, на основе многоуровневой стационарной структуры разложения вейвлета SWC или [A,H,V,D] (см. swt2).

Если многоуровневая стационарная структура разложения вейвлета SWC или [A,H,V,D] была сгенерирована из 2D матрицы, синтаксиса X = iswt2(A(:,:,end),H,V,D,'wname') восстанавливает X сигнала.

Если стационарная структура разложения вейвлета SWC или [A,H,V,D] была сгенерирована от одного уровня стационарное разложение вейвлета 3-D матрицы, X = iswt2(A(:,:,1,:),H,V,D,'wname') восстанавливает X сигнала.

X = iswt2(SWC,Lo_R,Hi_R) или X = iswt2(A,H,V,D,Lo_R,Hi_R) или X = iswt2(A(:,:,end),H,V,D,Lo_R,Hi_R) или X = iswt2(A(:,:,1,:),H,V,D,'wname') восстанавливает как в предыдущем синтаксисе, с помощью фильтров, которые вы задаете:

  • Lo_R является фильтром нижних частот реконструкции.

  • Hi_R является фильтром высоких частот реконструкции.

Lo_R и Hi_R должны быть той же длиной.

Примечание

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

  • Чтобы отличить одноуровневое разложение изображения истинного цвета от многоуровневого разложения индексируемого изображения, приближение и детализировать массивы коэффициентов изображений истинного цвета является 4-D массивами. Смотрите Отличают Одноуровневое Изображение Истинного цвета от Многоуровневых Индексируемых Разложений Изображений. Также смотрите примеры Стационарное Преобразование Вейвлета Изображения и Обратное Стационарное Преобразование Вейвлета Изображения.

    Если K - разложение уровня выполняется, размерности A, H, V, и массивами коэффициентов D является m-by-n-by-3-by-K.

    Если одноуровневое разложение выполняется, размерности A, H, V, и массивами коэффициентов D является m-by-n-by-1-by-3. Начиная с одиночного элемента MATLAB®removes последние размерности по умолчанию, третья размерность массивов коэффициентов является одиночным элементом.

Примеры

свернуть все

Продемонстрируйте совершенную реконструкцию с помощью swt2 и iswt2 с ортогональным вейвлетом.

load woman
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('db6');
[ca,chd,cvd,cdd] = swt2(X,3,Lo_D,Hi_D);
recon = iswt2(ca,chd,cvd,cdd,Lo_R,Hi_R);
norm(X-recon)
ans = 1.0126e-08

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

Загрузите в изображении истинного цвета. Изображение является трехмерным массивом типа 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

Советы

Если SWC или (приблизительно, cH, условная цена, CD) получены из индексируемого анализа изображения или анализа изображения истинного цвета, то X m-by-n матрица или m-by-n-by-3 массив, соответственно.

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

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

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

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

Ссылки

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

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

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

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

| |

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

Для просмотра документации необходимо авторизоваться на сайте