А.Н. Яковлев - Введение в вейвлет преобразования (1275343), страница 10
Текст из файла (страница 10)
Двумерное
вейвлет-преобразование.
Обработка изображений
3.1. Двумерные вейвлеты
До сих пор рассматривался одномерный сигнал. При обработке изображений приходится иметь дело с двумерными массивами . Пусть они, как и прежде, задаются в пространстве
, но теперь как функции двух переменных
и
. В этом случае вместо выражения для одномерной вейвлет-функции вида (1.11) можно воспользоваться двумерным аналогом
где и
,
и
– значения
и
по каждому измерению.
Для двумерного диадного ВП непрерывных сигналов:
Для ВП дискретных изображений и построения быстрых алгоритмов обработки следует исходить из двумерного КМА. Общий подход к определению КМА для многомерного случая рассмотрен в [ 3].
Однако на практике поступают проще. Многомерный и, в частности, двумерный КМА строят как тензорное произведение одномерных КМА. При таком подходе отцовский и материнский вейвлеты будут сформированы следующим образом:
где индексы и
означают реализацию фильтров ВЧ и НЧ составляющих.
Тогда двумерные вейвлеты запишутся в виде:
Таким образом, на двумерной плоскости происходит анализ по горизонтали, вертикали и диагонали с одинаковым разрешением в соответствии с тремя приведенными выше вейвлетами.
Рассмотрение многомерных вейвлетов (мультивейвлетов) возможно и с позиций блоков мультифильтров. Такой подход дан в [1].
3.2. Двумерное ДВП
Формулы ДВП двумерных сигналов и изображений, сконструированные с учетом приведенных выше соотношений (3.5), использованы в инструмен-тальных пакетах существующих СКМ, включая Wavelet Toolbox.
На основе частотного подхода к ВП, рассмотренного в п. 2.6, прямое ВП изображения происходит следующим образом. Предположим, что имеем изображение размером (рис. 3.1, а). Первоначально каждая из
строк изображения делится (фильтруется) на низкочастотную (НЧ) и высокочастотную (ВЧ) половины. В результате получается два изображения размером
(рис. 3.1, б). Далее каждый столбец делится точно также, в итоге получается четыре изображения размером
(рис. 3.1, в): НЧ по горизонтали и вертикали (НЧНЧ1), ВЧ по горизонтали и вертикали (ВЧВЧ1), НЧ по горизонтали и ВЧ по вертикали (НЧВЧ1) и ВЧ по горизонтали и НЧ по вертикали (ВЧНЧ1). Первое из указанных выше изображений делится аналогичным образом на следующем шаге (уровне) преобразования (рис. 3.1, г) и т.д.
Рис. 3.1
На рис. 3.2 даны реальное изображение (слева) и результат первого уровня его вейвлет-анализа, т.е. четыре изображения (слева направо, сверху вниз): НЧНЧ1, ВЧНЧ1, НЧВЧ1 и ВЧВЧ1.
Рис. 3.2
Ряд примеров по анализу и реконструкции изображений, их компрессии и очистке от шума дан в разделе GUI Wavelet Toolbox, который активизируется кнопкой Wavelet-2D.
Рис. 3.3
На рис. 3.3 приведен один из этих примеров: в верхнем левом углу приведено реальное изображение (гамадрил); в нижнем правом углу дано его вейвлет-разложение (dwt2) на прямоугольные сегменты на уровне 2; в левом нижнем углу – реконструкция изображения (idwt2); в правом верхнем углу иллюстрируется участок декомпозиции изображения (для этого достаточно выделить мышью фрагмент декомпозиции изображения и щелкнуть ей на кнопке Visualize; кнопки Full Sitze и Reconstruct позволяют вывести в максимальном размере соответственно декомпозицию и реконструкцию изображения).
Для двумерного ВП могут также успешно использоваться пакетные вейвлеты. Рис. 3.4 демонстрирует пример такого рода. В левой части окна приведены четыре изображения: вейвлет-дерева первого уровня (верх слева), анализируемого изображения (верх справа), изображения в узле (1,0) (низ слева) и пакетного разложения (низ справа). Меню в правой части окна позво-ляет выбирать различные типы дерева, проводить анализ (декомпозицию), очистку от шума и компрессию изображения.
Рис. 3.4
Еще некоторые примеры двумерного ВП (рис. П.8 и П.9) даны в прил. П.1. Функции двумерных ДВП и пакетных вейвлет-алгоритмов, предназначенные для практического применения обработки сигналов и изображений, приведены в прил. 2 (П.2.4 – П.2.6).
3.3. Удаление шумов
и компрессия изображений
Решения этих задач осуществляется аналогично случаю одномерных сигналов (см. п.2.8). Осуществляется пороговое ограничение уровня детализирующих коэффициентов. Задав определенный порог и «отсекая» коэффициенты ниже этого порога, можно значительно снизить уровень шума и сжать изображение.
На рис.3.5. приведен пример очистки от шума изображения, взятый из графического интерфейса пользователя GUI (Wavelet 2-D). В левом верхнем углу дано зашумленное изображение, а в правом верхнем – очищенное. Ниже даны гистограммы детализирующих коэффициентов по горизонтали, диагонали и вертикали, там же штриховыми линиями указаны выставленные пороги. Использован самый простой вейвлет – db2. Результат очистки очевиден.
Рис. 3.5
Рассмотрим примеры очистки и сжатия изображений при работе MATLAB в командном режиме.
Пример 3.1. Очистка изображения от шума
Ниже приведен фрагмент программы очистки изображения, которое загружено из файла neissi2d. При этом использованы функции wpbmpen (установка глобального порога) и wpdencmp (удаление шумов и сжатие изображений) (см. прил. П.2.7):
load noissi2d; nbc = size(map,1); wname = 'db8';
lev = 2; tree = wpdec2(X,lev,wname);
det1 = [wpcoef(tree,2) wpcoef(tree,3) wpcoef(tree,4)];
sigma = median(abs(det1(:)))/0.6745; alpha = 1.1;
thr = wpbmpen(tree,sigma,alpha); keepapp = 1;
xd = wpdencmp(tree,'s','nobest',thr,keepapp);
colormap(pink(nbc));
subplot(221), image(wcodemat(X,nbc)); title('Исходное изображение')
subplot(222), image(wcodemat(xd,nbc)); title('Очищенное изображение')
end
На рис. 3.6 приведены исходное (слева) и очищенное от шума (справа) изображения, полученные при исполнении программы.
Рис. 3.6
С этим примером рекомендуется поэкспериментировать. В частности, можно задать выходные параметры в полной форме и найти нормы восстановления и сжатия изображения.
Пример 3.2. Компрессия изображения - отпечатка пальца
Этот пример применения сжатия стал классическим. В свое время ФБР использовало ВП для сжатия информации, в результате этого удалось хранить большой объем отпечатков пальцев в простых компьютерах с небольшим объемом памяти, что сэкономило значительные средства.
Ниже приведена упрощенная программная реализация, в которой использованы функции порога двумерного вейвлета ( ) и удаления шума и сжатия (
):
function detfingr
load detfingr; nbc = size(map,1); wname = 'sym4'; lev = 3;
[c,s] = wavedec2(X,lev,wname); alpha =1.5; m = 2.7*prod(s(1,:));
[thr,nkeep] = wdcbm2(c,s,alpha,m);
[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,lev,thr,'h');
colormap(pink(nbc)); subplot(221), image(wcodemat(X,nbc)),
title('Исходное изображение'); subplot (222),image(wcodemat(xd,nbc)),
title('Сжатое изображение'); xlabl = ['2-norm rec. :', num2str(perfl2)];
xlab2 = [' % - zero cfs: ',num2str(perf0), '%']; xlabel([xlabl xlabl2])
end
На рис. 3.7 приведены исходный и сжатый отпечатки пальца; при этом более 94 % коэффициентов обнулено, а в оставшихся сосредоточено 98 % от энергии всех коэффициентов разложения. Несмотря на то, что сжатие осуществлено в десятки раз, качество изображения остается вполне хорошим. Поэтому объем архива отпечатков пальцев для криминалистических отделов может быть существенно уменьшен.
Рис. 3.7
Аналогично можно сжимать снимки в картографии, медицине, геологии и других областях.
К сжатию изображений проявляется значительный интерес во всем мире. Это обусловлено стремительным развитием цифровой техники обработки изображений, цветных принтеров, графических мониторов, цифровых фото- и видеокамер и т.п. Изображение, представленное в цифровом виде, имеет довольно большой объем в битах. Например, цветное изображение размером 512х512 требует для своего хранения 768 кбайт, а если передавать видеопоследовательность таких изображений со скоростью 25 кадров в секунду, то требуемая скорость составит 188 Мбит/с.
Кроме ситуации, рассмотренной в примере 3.2, когда требуется хранить большой объем информации в компьютере с ограниченной памятью, возможны еще другие ситуации.
Например, требуется сохранить качество изображения (фотографии или фильма) таким, чтобы даже экспертиза не отличила сжатую копию от оригинала. В этом случае компрессия окажется небольшой (коэффициент сжатия от 3 до 5). Это режим сжатия почти без потерь.
В другой ситуации может потребоваться, наоборот, большая компрессия, когда сигнал или изображение передаются по каналу с ограниченной пропускной способностью, либо когда вся процедура анализа и синтеза информации должна быть осуществлена за кратчайшее время и результат должен быть передан немедленно и по возможности дешевле. Это режим сжатия с допустимыми потерями, при котором коэффициент сжатия может достигать сотен и даже тысяч.
Поэтому в разных ситуациях надлежит выбирать соответствующие вейвлеты для оптимизации всей процедуры ВП (анализа и синтеза) [24]. Тем не менее, для любой из этих ситуаций ВП имеет преимущество по сравнению с методами кодирования, использующими оконное преобразование Фурье, при этом количественные показатели такого выигрыша зависят от поставленной задачи [19].
И еще следует отметить, что принципиальное отличие процедуры компрессии с помощью ДВП от широко распространенного сжатия по стандарту JPEG состоит в том, что она работает со всем изображением, в то время как в JPEG изображение разбивается на блоки, которые сжимаются независимо. В случае ВП можно подобрать такую базисную вейвлет-функцию, которая адаптирована к наиболее информативным особенностям изображения. Здесь адаптивность понимается в том смысле, что элементы или участки изображения с довольно плавным изменением яркости представляются небольшим числом вейвлет-коэффициентов.