Используйте функции
medsmooth и
getnoise, чтобы найти медианную интенсивность (0.5 квантиля) каждого элемента изображения и его восемь ближайших элементов (квадратное ядро 3 x 3). Функция medsmooth возвращает фильтрованное изображение, а функция getnoise возвращает разницу между исходным и фильтрованным изображениями.
Используйте функцию
quantfilt, если вместо медианы необходимо применить ядро и квантиль, определяемые пользователем.
Помимо удаления шума, медианная фильтрация также имеет свойство удалять с рисунка маленькие резкие элементы.
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. Сравните исходный образец с темной и светлой версиями.