Функции > Обработка изображений > Свертка и фильтры > Пример: Медианное и квантильное фильтрование
  
Пример: Медианное и квантильное фильтрование
Используйте функции medsmooth и getnoise, чтобы найти медианную интенсивность (0.5 квантиля) каждого элемента изображения и его восемь ближайших элементов (квадратное ядро 3 x 3). Функция medsmooth возвращает фильтрованное изображение, а функция getnoise возвращает разницу между исходным и фильтрованным изображениями.
Используйте функцию quantfilt, если вместо медианы необходимо применить ядро и квантиль, определяемые пользователем.
Помимо удаления шума, медианная фильтрация также имеет свойство удалять с рисунка маленькие резкие элементы.
Сведения об использовании этого примера см. в разделе Сведения о примерах обработки изображений.
medsmooth
1. Прочитайте изображение.
Нажать для копирования этого выражения
2. Добавьте шум к изображению.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Сравните исходное изображение с зашумленным изображением.
(fruit.bmp)
(fruit_n.bmp)
4. Отфильтруйте изображение с помощью функции medsmooth.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(fruit_f.bmp)
getnoise
Эта функция вычитает исходную версию матрицы изображения из версии, отфильтрованной по медиане.
1. Примените функцию getnoise к зашумленному изображению.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(fruit_gn.bmp)
Функция getnoise эквивалентна вычитанию шума из отфильтрованного изображения:
Нажать для копирования этого выражения
2. Рассчитайте и просмотрите абсолютную разность двух изображений.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(fruit_an.bmp)
quantfilt
В некоторых случаях медианный фильтр с ядром 3 x 3 может не обеспечивать надлежащую фильтрацию. Например, при такой фильтрации изображения со множеством острых углов часто удаляются угловые пикселы. Во избежание такого эффекта следует использовать функцию quantfilt с крестообразным ядром медианной фильтрации вместо указанного выше однородного ядра 3 x 3.
Возьмите стандартный образец и добавьте к нему шум.
1. Выполните чтение изображения образца.
Нажать для копирования этого выражения
2. Добавьте шум к изображению.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Сравните исходное изображение с зашумленным изображением.
(pattern.bmp)
(pattern_n2.bmp)
4. Отфильтруйте зашумленное изображение с помощью функции quantfilt с квантилем 0.5 для медианного значения и квадратным ядром 3 x 3.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
5. Отфильтруйте зашумленное изображение с помощью функции quantfilt с квантилем 0.5 для медианного значения и крестообразным ядром.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
6. Сравните два отфильтрованных образца.
(pattern_sq.bmp)
(pattern_cr.bmp)
Использование квадратного ядра приводит к сильному ухудшению прямых кромок, линий и углов по сравнению с крестообразным ядром.
Немедианные квантили
Другое возможное применение функции quantfilt заключается в использовании значений, отличных от медианного (0.5), что приводит к изменению общей интенсивности изображения. Например, при выборе квантиля 0.0 используется минимальное значение пиксела и его соседних элементов, а при выборе квантиля 1.0 — максимальное значение. (Это в некоторой степени аналогично полутоновой морфологической эрозии и растяжению.)
1. Задание квантиля 0.0 расширяет более темные области исходного образца и эродирует более светлые области.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Задание квантиля 1.0 расширяет более светлые области исходного образца и эродирует более темные области.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Сравните исходный образец с темной и светлой версиями.
(pattern.bmp)
(pattern_drk.bmp)
(pattern_lit.bmp)