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

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

Примечание

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

Функции аналитического разложения

FunctionName

Цель

dwt2

Одноуровневое разложение

wavedec2

Разложение

wmaxlev

Максимальный уровень разложения вейвлета

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

FunctionName

Цель

idwt2

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

waverec2

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

wrcoef2

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

upcoef2

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

Утилиты структуры разложения

FunctionName

Цель

detcoef2

Экстракция коэффициентов детали

appcoef2

Экстракция коэффициентов приближения

upwlev2

Пересостав структуры разложения

Шумоподавление и сжатие

FunctionName

Цель

wdenoise2

Шумоподавление вейвлета изображений

ddencmp

Обеспечьте значения по умолчанию для шумоподавления и сжатия

wbmpen

Оштрафованный порог для вейвлета 1D или 2D шумоподавление

wdcbm2

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

wdencmp

Шумоподавление вейвлета и сжатие

wthrmngr

Пороговый менеджер по настройкам

В этом разделе вы будете учиться

  • Как загрузить изображение

  • Как анализировать изображение

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

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

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

  • Как сжать изображение

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

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

Примечание: Вместо того, чтобы непосредственно использовать 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

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

Выполните одноуровневое разложение вейвлета изображения с помощью 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)

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

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

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

[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)

Сожмите изображение. Используйте 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.8024
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)

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

2D анализ вейвлета Используя приложение Wavelet Analyzer

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

  1. Запустите 2D аналитический инструмент вейвлета.

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

    Главное меню Инструмента Вейвлета появляется.

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

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

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

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

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

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

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

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

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

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

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

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

    Синяя граница подсвечивает выбранный компонент. В нижнем правом углу окна Wavelet 2-D существует набор трех кнопок, пометил “Operations on selected image”. Обратите внимание на то, что, если вы щелкнете еще раз по тому же компоненту, вы отмените выбор его, и синяя граница исчезает.

    Нажмите кнопку Visualize.

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

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

    Выберите Tree из меню View Mode.

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

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

    Увеличивание масштаб детали

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

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

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

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

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

    Нажмите кнопку Compress, расположенную к верхнему правому углу окна Wavelet 2-D. Окно Wavelet 2-D Compression появляется.

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

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

    В данном примере выберите опцией пороговой обработки Уровня и выберите Remove около 0 методов в Избранном меню метода задания порога.

    Следующее окно отображено.

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

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

  5. Покажите остаточные значения.

    От инструмента Wavelet 2-D Compression нажмите кнопку Residuals. Окно More on Residuals for Wavelet 2-D Compression появляется.

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

    Примечание

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

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

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

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

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

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

Например, загрузите анализ в качестве примера:

Файл> Анализ В качестве примера> Индексируемые Изображения> на уровне 3, с Детайлем Дюрером sym4 

и выполните сжатие на оригинальном изображении. Когда вы закрываете окно Wavelet 2-D Compression, обновляете синтезируемое изображение путем нажимания кнопку Да в диалоговом окне, которое появляется.

Затем от инструмента Wavelet 2-D выберите пункт меню File> Save> Synthesized Image. Диалоговое окно кажется позволяющим вам, чтобы выбрать папку и имя файла для MAT-файла (с дополнительным mat или другой). В данном примере выберите имя symage.

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

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

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

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

Чтобы избавить коэффициенты DWT от существующего анализа, используйте пункт меню File> Save> Coefficients.

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

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

Файл> Анализ В качестве примера> Индексируемые Изображения> на уровне 3, с Детайлем Дюрером sym4 

После сохранения дискретных коэффициентов вейвлета к файлу 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 (2D анализ вейвлета).

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

Файл> Анализ В качестве примера> Индексируемые Изображения> на уровне 3, с Детайлем Дюрером sym4 .

Чтобы сохранить данные от этого анализа, используйте пункт меню File> Save> Decomposition.

Диалоговое окно появляется, который позволяет вам задать папку и имя файла для того, чтобы хранить данные о разложении. Введите имя 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 можно сохранить denoised образ и разложение. То же самое сохраняется для окна Wavelet 2-D Compression. Таким образом, можно сохранить много различных испытаний из окон Denoising и Compression, не возвращаясь к основному окну Wavelet 2-D во время процесса подстройки. При сохранении синтезируемого сигнала, разложения или коэффициентов к MAT-файлу, mat расширение файла не необходимо. Можно сохранить приближения индивидуально для каждого уровня или сохранить их целиком.

Загрузка информации в вейвлет 2D инструмент

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

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

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

Это изображение может опционально сопровождаться n- 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, используйте пункт меню File> Load> Image.

Диалоговое окно появляется, который позволяет вам выбрать соответствующий MAT-файл, чтобы загрузиться.

Примечание

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

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

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

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

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

Примечание

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

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

  • coefs, содействующий вектор

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

Для индексируемого изображения матричный sizes n+2- 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

Используйте пункт меню File> Load> Coefficients от инструмента Wavelet 2-D, чтобы загрузить данные в графический инструмент.

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

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

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

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

Необходимый

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

sizes

Необходимый

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

wave_name

Необходимый

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

map

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

n- 3 матрицы палитры.

data_name

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

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

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

save myfile.wa2 coefs sizes wave_name

Используйте пункт меню File> Load> Decomposition от инструмента Wavelet 2-D, чтобы загрузить данные о разложении изображений.

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

Примечание

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