exponenta event banner

2-D Дискретный вейвлет-анализ

В этом разделе рассматриваются функции дискретного вейвлет 2-D анализа с помощью программного обеспечения Wavelet Toolbox™. Панель инструментов предоставляет эти функции для анализа изображений. Дополнительные сведения см. на страницах ссылок на функции.

Примечание

В этом разделе в представлении и примерах используются массивы 2-D, соответствующие индексированным представлениям изображений. Тем не менее, описанные функции также доступны при использовании изображений truecolor, которые представлены mоколо-n-на-3 массива uint8. Дополнительные сведения о форматах изображений см. в разделе Вейвлеты: работа с изображениями.

Функции анализа-декомпозиции

Имя функции

Цель

dwt2

Одноуровневая декомпозиция

wavedec2

Разложение

wmaxlev

Максимальный уровень вейвлет-декомпозиции

Функции синтеза-реконструкции

Имя функции

Цель

idwt2

Одноуровневая реконструкция

waverec2

Полная реконструкция

wrcoef2

Выборочная реконструкция

upcoef2

Одиночная реконструкция

Утилиты структуры декомпозиции

Имя функции

Цель

detcoef2

Извлечение коэффициентов детализации

appcoef2

Извлечение коэффициентов аппроксимации

upwlev2

Рекомпозиция структуры разложения

Деноизирование и сжатие

Имя функции

Цель

wdenoise2

Отрицание вейвлет-изображения

ddencmp

Укажите значения по умолчанию для обессоливания и сжатия

wbmpen

Пенализированный порог для вейвлет 1-D или 2-D деноизирования

wdcbm2

Пороговые значения для вейвлет- 2-D с использованием стратегии Birgé-Massart

wdencmp

Вейвлет-денойзинг и сжатие

wthrmngr

Диспетчер параметров порога

В этом разделе вы узнаете

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

  • Анализ изображения

  • Как выполнять одноуровневые и многоуровневые декомпозиции и реконструкции изображений (только в командной строке)

  • Использование функций квадратного и древовидного режима (только графический интерфейс пользователя)

  • Увеличение детализации (только для графического интерфейса пользователя)

  • Сжатие изображения

Анализ и сжатие вейвлетного изображения

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

Примечание: Вместо непосредственного использования image(I) для визуализации изображения I, мы используем image(wcodemat(I)), которая отображает масштабированную версию I приводя к более четкому изложению деталей и приближений (см. wcodemat).

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

load wbarb
whos X map
  Name        Size              Bytes  Class     Attributes

  X         256x256            524288  double              
  map       192x3                4608  double              

Отображение изображения.

image(X)
colormap(map)
colorbar

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

Если карта цветов является гладкой, вейвлет-преобразование может быть непосредственно применено к индексированному изображению; в противном случае индексированное изображение следует преобразовать в формат градаций серого. Дополнительные сведения см. в разделе Вейвлеты: работа с изображениями. Поскольку карта цветов на этом изображении является гладкой, теперь можно выполнить разложение.

Выполните одноуровневую вейвлет-декомпозицию изображения с помощью bior3.7 вейвлет. Матрица коэффициентов cA1 - коэффициенты аппроксимации. Горизонтальные, вертикальные и диагональные детали находятся в матрицах cH1, cV1, и cD1соответственно.

wv = 'bior3.7';
[cA1,cH1,cV1,cD1] = dwt2(X,wv);

Использовать idwt1 для построения приближений и деталей из коэффициентов. (Примечание: Вы также можете использовать upcoef2.

sx = size(X);
A1 = idwt2(cA1,[],[],[],wv,sx);
H1 = idwt2([],cH1,[],[],wv,sx);
V1 = idwt2([],[],cV1,[],wv,sx);
D1 = idwt2([],[],[],cD1,wv,sx);

Просмотрите аппроксимации и подробные данные.

figure
subplot(2,2,1)
image(wcodemat(A1,192))
title('Approximation A1')
subplot(2,2,2)
image(wcodemat(H1,192))
title('Horizontal Detail H1')
subplot(2,2,3)
image(wcodemat(V1,192))
title('Vertical Detail V1')
subplot(2,2,4)
image(wcodemat(D1,192))
title('Diagonal Detail D1')
colormap(map)

Figure contains 4 axes. Axes 1 with title Approximation A1 contains an object of type image. Axes 2 with title Horizontal Detail H1 contains an object of type image. Axes 3 with title Vertical Detail V1 contains an object of type image. Axes 4 with title Diagonal Detail D1 contains an object of type image.

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

Xrec = idwt2(cA1,cH1,cV1,cD1,wv);
max(abs(X(:)-Xrec(:)))
ans = 1.4211e-13

Выполните вейвлет-декомпозицию изображения уровня 2, используя то же самое bior3.7 вейвлет. Коэффициенты всех составляющих декомпозиции второго уровня (то есть аппроксимации второго уровня и первых двух уровней детализации) возвращаются сцепленными в один вектор, C. Аргумент S - это бухгалтерская матрица, которая отслеживает размеры каждого компонента.

[c,s] = wavedec2(X,2,wv);

Извлеките коэффициенты аппроксимации уровня 2. Извлеките коэффициенты детализации первого и второго уровня.

cA2 = appcoef2(c,s,wv,2);
[cH2,cV2,cD2] = detcoef2('all',c,s,2);
[cH1,cV1,cD1] = detcoef2('all',c,s,1);

Выполните реконструкцию аппроксимации уровня 2 и подробных данных уровня 1 и уровня 2.

A2 = wrcoef2('a',c,s,wv,2);
H1 = wrcoef2('h',c,s,wv,1);
V1 = wrcoef2('v',c,s,wv,1);
D1 = wrcoef2('d',c,s,wv,1);
H2 = wrcoef2('h',c,s,wv,2);
V2 = wrcoef2('v',c,s,wv,2);
D2 = wrcoef2('d',c,s,wv,2);

Отображение аппроксимации и подробных данных.

figure
subplot(2,4,1)
image(wcodemat(A1,192))
title('Approximation A1')
subplot(2,4,2)
image(wcodemat(H1,192))
title('Horizontal Detail H1')
subplot(2,4,3)
image(wcodemat(V1,192))
title('Vertical Detail V1')
subplot(2,4,4)
image(wcodemat(D1,192))
title('Diagonal Detail D1')
subplot(2,4,5)
image(wcodemat(A2,192))
title('Approximation A2')
subplot(2,4,6)
image(wcodemat(H2,192))
title('Horizontal Detail H2')
subplot(2,4,7)
image(wcodemat(V2,192))
title('Vertical Detail V2')
subplot(2,4,8)
image(wcodemat(D2,192))
title('Diagonal Detail D2')
colormap(map)

Figure contains 8 axes. Axes 1 with title Approximation A1 contains an object of type image. Axes 2 with title Horizontal Detail H1 contains an object of type image. Axes 3 with title Vertical Detail V1 contains an object of type image. Axes 4 with title Diagonal Detail D1 contains an object of type image. Axes 5 with title Approximation A2 contains an object of type image. Axes 6 with title Horizontal Detail H2 contains an object of type image. Axes 7 with title Vertical Detail V2 contains an object of type image. Axes 8 with title Diagonal Detail D2 contains an object of type image.

Сжать изображение. Использовать ddencmp для расчета параметров по умолчанию и wdencmp для выполнения фактического сжатия.

[thr,sorh,keepapp] = ddencmp('cmp','wv',X);
[Xcomp,CXC,LXC,PERF0,PERFL2] = ... 
wdencmp('gbl',c,s,wv,2,thr,sorh,keepapp);

Сравните сжатое изображение с исходным.

fprintf('Percentage of wavelet coefficients set to zero: %.4f\nPercentage of energy preserved: %.4f\n',...
    PERF0,PERFL2);
Percentage of wavelet coefficients set to zero: 49.8011
Percentage of energy preserved: 99.9817
figure
subplot(121)
image(X)
title('Original Image') 
axis square
subplot(122)
image(Xcomp)
title('Compressed Image') 
axis square
colormap(map)

Figure contains 2 axes. Axes 1 with title Original Image contains an object of type image. Axes 2 with title Compressed Image contains an object of type image.

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

2-D Вейвлет-анализ с помощью приложения Wavelet Analyzer

В этом разделе рассматривается то же изображение, что и в предыдущем разделе, но для анализа изображения используется приложение Wavelet Analyzer.

  1. Запустите 2-D Wavelet Analysis Tool.

    В подсказке MATLAB ® введитеwaveletAnalyzer.

    Появится главное меню Wavelet Tool.

    Выберите пункт меню Wavelet 2-D. Появляется инструмент дискретного вейвлет-анализа для 2-D данных изображения.

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

    В командной строке MATLAB введите

    load wbarb
    В инструменте Wavelet 2-D выберите «Файл» > «Импорт из рабочего пространства» > «Импорт изображения». При появлении диалогового окна Импорт из рабочего пространства (Import from Workspace) выберите X переменная. Нажмите кнопку ОК, чтобы импортировать изображение.

    Изображение загружается в инструмент Wavelet 2-D.

  3. Проанализируйте изображение.

    Используя меню Вейвлет (Vavelet) и Уровень (Level), расположенные справа вверху, определите семейство вейвлетов, тип вейвлета и количество уровней, которые будут использоваться для анализа.

    Для этого анализа выберите bior3.7 вейвлет на уровне 2.

    Нажмите кнопку «Анализ». После паузы для вычислений инструмент Wavelet 2-D отображает свой анализ.

    Использование элементов квадратного режима

    По умолчанию анализ отображается в «Режиме квадрата» (Square Mode). Этот режим включает четыре различных дисплея. В левом верхнем углу находится исходное изображение. Ниже представлено изображение, реконструированное из различных приближений и деталей. Справа внизу находится декомпозиция, показывающая самые грубые коэффициенты приближения и все коэффициенты детализации по горизонтали, диагонали и вертикали. Наконец, в области визуализации вверху справа отображается любой компонент анализа, на который требуется обратить более пристальное внимание.

    Щелкните любой компонент разложения в правом нижнем окне.

    Синяя граница выделяет выбранный компонент. В правом нижнем углу окна Wavelet 2-D имеется набор из трех кнопок с надписью «Операции с выбранным изображением». Обратите внимание, что при повторном щелчке по тому же компоненту он будет снят и синяя граница исчезнет.

    Нажмите кнопку Визуализация (Visualize).

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

    Использование функций режима дерева

    Выберите Дерево (Tree) в меню Режим просмотра (View Mode).

    Ваш экран изменится, чтобы показать следующее.

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

    Увеличение детализации

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

    Нажмите кнопку XY + (расположенную в нижней части экрана), чтобы увеличить изображение по горизонтали и вертикали.

    Инструмент Wavelet 2-D увеличивает отображаемые изображения.

    Чтобы увеличить масштаб изображения до исходного, нажмите кнопку История < < -.

  4. Сжатие изображения

    Нажмите кнопку «Сжать», расположенную в правом верхнем углу окна 2-D вейвлета. Появится окно Wavelet 2-D Compression.

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

    Однако можно также настроить пороговые значения вручную, используя параметр «По пороговому значению уровня», а затем ползунки или правки, соответствующие каждому уровню.

    В этом примере выберите параметр «По пороговому значению уровня» и выберите метод «Удалить около 0» в меню метода «Выбрать пороговое значение».

    Появится следующее окно.

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

    Чтобы сжать исходное изображение, нажмите кнопку «Сжать». После паузы для вычислений сжатое изображение отображается рядом с оригиналом. Обратите внимание, что сжатие устраняет почти половину коэффициентов, но заметного ухудшения изображения не появляется.

  5. Показать остатки.

    В инструменте «Вейвлет 2-D Сжатие» нажмите кнопку «Остатки». Появится окно More on Reseives for Vavelet 2-D Compression.

    Отображаемая статистика включает в себя показатели тенденции (среднее, режим, медиана) и дисперсии (диапазон, стандартное отклонение). Кроме того, инструмент предоставляет частотно-распределительные диаграммы (гистограммы и кумулятивные гистограммы). Тот же инструмент существует для инструмента Wavelet 2-D Denoising.

    Примечание

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

Импорт и экспорт информации из приложения Wavelet Analyzer

Графический инструмент Wavelet 2-D позволяет импортировать информацию с диска и экспортировать ее на диск, если соблюдаются соответствующие форматы файлов.

Сохранение информации на диск

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

Сохранение синтезированных образов.  Можно обработать изображение в инструменте Wavelet 2-D, а затем сохранить обработанное изображение в MAT-файл (с расширением mat или другое).

Например, загрузите пример анализа:

Файл > Пример анализа > Индексированные изображения > на уровне 3, с sym4 → Durer деталей

и выполнить сжатие исходного изображения. При закрытии окна Wavelet 2-D Compression обновите синтезированное изображение, щелкнув Да (Yes) в появившемся диалоговом окне.

Затем в инструменте Wavelet 2-D выберите пункт меню «Файл» > «Сохранить» > «Синтезированное изображение». Появится диалоговое окно, позволяющее выбрать папку и имя файла для MAT-файла (с расширением mat или другое). В этом примере выберите имя symage.

Чтобы загрузить изображение в рабочую область, введите

load symage 
whos
ИмяРазмерБайтыКласс
X359x3711065512double array
map64x31536double array
valTHR1x18double array
wname1x48char array

Синтезированное изображение дается X и map содержит карту цветов. Кроме того, параметры процесса денойзинга или сжатия задаются именем вейвлета (wname) и глобальный порог (valTHR).

Сохранение коэффициентов дискретного вейвлет-преобразования.  Инструмент Wavelet 2-D позволяет сохранить коэффициенты дискретного вейвлет-преобразования (DWT) на диске. Панель инструментов создает MAT-файл в текущей папке с выбранным именем.

Чтобы сохранить коэффициенты DWT из текущего анализа, используйте пункт меню «Файл» > «Сохранить» > «Коэффициенты».

Появится диалоговое окно, в котором можно указать папку и имя файла для хранения коэффициентов.

Рассмотрим пример анализа:

Файл > Пример анализа > Индексированные изображения > на уровне 3, с sym4 → Durer деталей

После сохранения дискретных вейвлет-коэффициентов в файл cfsdurer.mat, загрузите переменные в рабочую область:

load cfsdurer
whos
ИмяРазмерБайтыКласс
coefs1x1422991138392double array
map64x31536double array
sizes5x280double array
valTHR0x00double array
wname1x48char array

Переменная map содержит карту цветов. Переменная wname содержит имя вейвлета и valTHR пуст, так как синтезированное изображение совпадает с исходным.

Переменные coefs и sizes содержат дискретные вейвлет-коэффициенты и связанные с ними размеры матрицы. Точнее, в приведенном выше примере coefs является вектором 1 на 142299 конкатенированных коэффициентов, и sizes задает длину каждого компонента.

Сохранение разложений.  Инструмент Wavelet 2-D позволяет сохранить весь набор данных из дискретного вейвлет-анализа на диск. Панель инструментов создает MAT-файл в текущей папке с выбранным именем, за которым следует расширение wa2 (вейвлет-анализ 2-D).

Откройте инструмент Wavelet 2-D и загрузите пример анализа:

Файл > Пример анализа > Индексированные изображения > на уровне 3 с sym4 → Durer деталей.

Чтобы сохранить данные из этого анализа, используйте пункт меню Файл > Сохранить > Декомпозиция.

Появится диалоговое окно, в котором можно указать папку и имя файла для хранения данных разложения. Введите имя decdurer.

После сохранения данных разложения в файл decdurer.wa2, загрузите переменные в рабочую область:

load decdurer.wa2 -mat 
whos 
ИмяРазмерБайтыКласс
coefs1x1422991138392double array
data_name1x612char array
map64x31536double array
sizes5x280double array
valTHR0x00double array
wave_name1x48char array

Переменные coefs и sizes содержат структуру вейвлет-разложения. Другие переменные содержат имя вейвлета, карту цветов и имя файла, содержащего данные. Переменная valTHR пуст, так как синтезированное изображение совпадает с исходным.

Примечание

Опции сохранения также доступны при выполнении деноизирования или сжатия в инструменте Wavelet 2-D. В окне Вейвлет (Wavelet) 2-D Деноизирование (Denoising) можно сохранить деноизированное изображение и декомпозицию. То же самое справедливо для окна Wavelet 2-D Compression. Таким образом, можно сохранить множество различных испытаний из окон Denoising и Compression, не возвращаясь к главному окну Wavelet 2-D во время процесса точной настройки. При сохранении синтезированного сигнала, разложения или коэффициентов в MAT-файл, mat расширение файла не требуется. Аппроксимации можно сохранять отдельно для каждого уровня или сохранять их все одновременно.

Загрузка информации в Wavelet 2-D Tool

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

В любом случае необходимо соблюдать строгие форматы файлов и структуры данных, используемые инструментом Wavelet 2-D, иначе при попытке загрузить информацию возникнут ошибки.

Загрузка изображений.  Эта панель инструментов поддерживает только индексированные изображения. Индексированное изображение - это матрица, содержащая только целые числа от 1 до n, где n - количество цветов в изображении.

Это изображение может необязательно сопровождаться n-by-3 матрица называется map. Это карта цветов, связанная с изображением. Когда MATLAB отображает такое изображение, он использует значения матрицы для поиска требуемого цвета в этой карте цветов. Если карта цветов не задана, инструмент Wavelet 2-D использует монотонную карту цветов с max(max(X))min(min(X))+1 цвета.

Чтобы загрузить изображение, созданное в рабочем пространстве MATLAB, в инструмент Wavelet 2-D, сохраните изображение (и, при необходимости, переменную). map) в MAT-файле (с расширением mat или другое).

Например, предположим, что вы создали изображение под названием мозг и хотите проанализировать его в инструменте Wavelet 2-D. Напечатать

X = brain; 
map = pink(256); 
save myfile X map

Чтобы загрузить это изображение в инструмент Wavelet 2-D, используйте пункт меню Файл > Загрузить > Изображение.

Появится диалоговое окно, в котором можно выбрать соответствующий файл MAT для загрузки.

Примечание

Графические инструменты позволяют загрузить изображение, не содержащее целых чисел от 1 до n. Вычисления верны, поскольку действуют непосредственно на матрицу, но отображение изображения странно. Значения меньше 1 оцениваются как 1, значения больше n оцениваются как n, а действительное значение в интервале [1, n] оценивается как ближайшее целое число.

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

Чтобы отобразить эти изображения подходящим образом, инструмент Wavelet 2-D следует следующим правилам:

  • Восстановленные аппроксимации отображаются с помощью карты цветов map.

  • Коэффициенты и восстановленные детали отображаются с использованием карты цветов. map применяется к масштабированной версии матриц.

Примечание

Первая 2-D переменная, обнаруженная в файле (за исключением переменной map, который зарезервирован для карты цветов) считается изображением. Проверка переменных производится в алфавитном порядке.

Загрузка коэффициентов дискретного вейвлет-преобразования.  Чтобы загрузить коэффициенты дискретного вейвлет-преобразования (DWT) в инструмент вейвлет- 2-D, сначала сохраните соответствующие данные в MAT-файле, который должен содержать по крайней мере две переменные:

  • coefs, вектор коэффициентов

  • sizes, матрица бухгалтерского учета

Для индексированного изображения матрица sizes является n+2массив -by-2:

Для цветного изображения матрица sizes является n+2-к-3:

Переменная coefs должен быть вектором конкатенированных коэффициентов DWT. coefs вектор для n-уровневое разложение содержит 3n+1 секции, состоящие из уровня -n коэффициенты аппроксимации, за которыми следуют коэффициенты детализации по горизонтали, вертикали и диагонали в указанном порядке для каждого уровня. Переменная sizes является матрицей, строки которой задают размер cAn, размер cHn (или cVn, или cDn),..., размер cH1 (или cV1, или cD1) и размер исходного изображения X. Размеры вертикальных и диагональных деталей совпадают с размерами горизонтальных деталей.

После создания или редактирования соответствующих данных в рабочей области введите

save myfile coefs sizes

Команда меню «Файл» > «Загрузка» > «Коэффициенты» инструмента «Вейвлет 2-D» используется для загрузки данных в графический инструмент.

Появится диалоговое окно, в котором можно выбрать папку и файл, в которых находятся данные.

Загрузка декомпозиций.  Чтобы загрузить данные декомпозиции дискретного вейвлет-преобразования в инструмент вейвлет- 2-D, необходимо сначала сохранить соответствующие данные в MAT-файле (с расширением wa2 или другое).

MAT-файл содержит эти переменные.

Переменная СтатусОписание
coefs

Необходимый

Вектор конкатенированных коэффициентов DWT

sizes

Необходимый

Матрица, задающая размеры компонентов coefs и оригинального изображения

wave_name

Необходимый

Символьный вектор, определяющий имя вейвлета, используемого для разложения (например, db3)

map

Дополнительный

n-по-3 матрица карты цветов.

data_name

Дополнительный

Символьный вектор, указывающий имя разложения

После создания или редактирования соответствующих данных в рабочей области введите

save myfile.wa2 coefs sizes wave_name

Команда меню «Файл» > «Загрузка» > «Декомпозиция» инструмента «Вейвлет 2-D» используется для загрузки данных декомпозиции изображения.

Появится диалоговое окно, в котором можно выбрать папку и файл, в которых находятся данные.

Примечание

При загрузке изображения, разложения или коэффициентов из MAT-файла расширение этого файла является свободным. mat расширение не требуется.