Скачиваний:
4
Добавлен:
02.05.2014
Размер:
33.49 Кб
Скачать

Список функцийImage Processing Toolbox. Описание функции FSAMP2  Семинары   Обучение   Лицензирование   Разработка   Подписка   Форум  Регистрация    Matlab    Toolboxes    Simulink    Blocksets    Femlab    Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Фильтрация изображений

  В оглавление \ К следующему разделу \ К предыдущему разделу

FSAMP2 Формирование маски линейного фильтра по желаемой АЧХ Синтаксис:

h=fsamp2(H)

h=fsamp2(f1, f2, H, [m n])

Описание:

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

Функция h=fsamp2(H) формирует маску с линейного двумерного КИХ-фильтра, основываясь на желаемой АЧХ двумерного фильтра, передаваемой в матрице Н. Маска h предназначена для передачи в функции filter2 или conv2, которые выполняют двумерную линейную фильтрацию. Размер маски h совпадает с размером матрицы Н. Значения АЧХ в матрице Н соответствуют частотам по осям абсцисс и ординат, равномерно распределенным в диапазоне [-1, 1], где 1 соответствует половине частоты дискретизации (частоте Найквиста).

При формировании матрицы Н для получения более точного результата рекомендуется использовать отсчеты частоты, возвращаемые функцией freqspace.

Функция h=fsamp2(f1, f2, H, [m n]) формирует маску h размера mxn линейного двумерного КИХ-фильтра, основываясь на желаемой АЧХ двумерного фильтра Н, для частот, передаваемых в векторах f1 и f2. Векторы f1 и f2 содержат нормализированные значения частот в диапазоне [-1, 1], где 1 соответствует половине частоты дискретизации. Для получения маски фильтра h размера mxn используется аппроксимация по методу наименьших квадратов. Требуется, чтобы длина вектора f1 была не менее, чем n, а длина вектора f2 - не менее, чем m.

Алгоритм.

Для вычисления маски фильтра h функция fsamp2 выполняет обратное ДПФ желаемой АЧХ [1, 2]:

Пример.

Рассмотрим пример, демонстрирующий формирование маски двумерного линейного фильтра, повышающего резкость изображения. АЧХ такого фильтра должна быть равна 0 в начале координат и увеличиваться по мере удаления от начала координат. Один из возможных вариантов желаемой частотной характеристики приведен на рис. 1, а. По данной АЧХ fsamp2 создает маску h линейного фильтра, АЧХ которого приведена на рис. 1, б.

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

%Пример демонстрирует повышение резкости изображения

%с помощью линейного КИХ-фильтра, сформированного по желаемой АЧХ.

%Получение нормализированных значений частот.

[f1 f2]=freqspace(15, 'meshgrid');

%Формирование желаемой АЧХ, как функции расстояния от начала координат.

%Для вычисления расстояния используется так называемая метрика городских кварталов.

dist=abs(f1)+abs(f2);

H=dist/max(dist(:));

%Вывод на экран желаемой АЧХ.

mesh(f1,f2,H), colormap(cool(32));

%Формирование маски КИХ-фильтра.

h=fsamp2(f1, f2, H, [5 5])

%Будет выведено:

%h =

% 0.0000 0.0000 -0.0012 0.0000 -0.0000

% -0.0000 0.0000 -0.1090 0.0000 -0.0000

% -0.0012 -0.1090 0.5333 -0.1090 -0.0012

% -0.0000 0.0000 -0.1090 -0.0000 -0.0000

% 0.0000 0.0000 -0.0012 -0.0000 0.0000

%Вывод на экран получившейся АЧХ.

figure, colormap(cool(32)), freqz2(h);

%Чтение исходного изображения и вывод его на экран.

i=imread('cameraman.tif');

figure, imshow(i);

%Фильтрация изображения.

i=mat2gray(filter2(h, im2double(i)));

%Контрастирование результата фильтрации.

i=imadjust(i, [0 0.8], []);

%Вывод результирующего изображения на экран.

figure, imshow(i);

а)  

б)

в)                                                                              г)

Рис. 1.

Сопутствующие функции: FILTER2, CONV2, FREQSPACE, FTRANS2, FWIND1, FWIND2.

Ссылки на литературу:

1. Лэм Г. Аналоговые и цифровые фильтры: расчет и реализация. М.: Мир, 1982.

2. Lim, Jae S. Two-Dimensional Signal and Image Processing // Englewood Cliffs. New Jersey: Prentice Hall, 1990.

  В оглавление \ К следующему разделу \ К предыдущему разделу

  I Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)

  II Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2004 г.) На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro    E-mail: matlab@exponenta.ru      Информация на сайте была обновлена 14.05.05 Copyright 2001-2005 SoftLine Co 

Наши баннеры         hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=58396&im=33&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("") >

Соседние файлы в папке Функции Image Toolbox