Шумопригнічення за допомогою усереднення зображень. Image Processing Toolbox


Бувають у житті сумні ситуації, коли світла мало, а відкрити (сильніше) діафрагму чи збільшити витримку немає можливості. Мається на увазі, що "поганий" знімок краще, ніж відсутній. Як бути? Терпіти. Або скористатися невеликою хитрістю – зробити кілька кадрів та застосувати усереднення.

ISO6400, було\стало.

Для початку доведеться зробити кілька однакових (що більше, тим краще) знімків.

Один із серії. Як бачимо, навіть у сильно зменшеному розмірі кількість шуму жахає.

Для усереднення завантажуємо це все в документ фотошопу у вигляді шарів.
Якщо зйомка велася з рук, шари потрібно вирівняти за допомогою photomerge, попередньо (тут), або за допомогою Edit - Auto-Align Layers (Редагування - Автоматично вирівняти шари).
Далі, для усереднення, задаємо прозорість шарів: для нижнього 100%, наступного 50%, 33%, 25%, ...

Набагато зручніше використовувати режим стекінгу, особливо при складанні великої кількостіфотографій.

Відкриваємо фотошоп, і віддаємо команду File - Scripts - Load Files into Stack (Файл - Сценарії - Завантажити файли у стек)
Зазначаємо галкою пункт Create Smart Object after Loading Layers (Створити смарт об'єкт під час завантаження шарів), опціонально - Attempt to Automatically Align Source Images (Спробувати автоматично вирівняти вихідні зображення).
Таким чином ми отримали єдину групу чи стек. Чакувати з прозорістю не потрібно, т.к. для обчислень над стеком є ​​окреме меню Layer - Smart Objects - Stack Mode (Шари - Смарт об'єкт - Режим стека). При обробці фото і відео мають значення лише два режими - mean (середнє або середнє арифметичне) і median (медіана), інші використовуються при обробці медичних, наукових та криміналістичних та знімків тощо. Якщо режим стека змінюється, обчислення виконуються заново (з оригіналом, а чи не попереднім результатом).
Розглянемо 100% кропу з різних ділянокі порівняємо результат.

Зліва направо: оригінал, медіана, усереднення. Використовувався десяток кадрів.




Як це працює? У разі режиму mean відбувається поканальне складання яскравостей кожного пікселя і результат ділиться на кількість фото. Наприклад: (3+2+1+2+9+3+1)/7=3
У режимі median вибирається середнє з ряду 1,1,2, 2 ,3,3,9 – середнє 2. Тобто. сильні поодинокі перепади не впливають.
З практичної точки зору це означає, що об'єкти, що рухаються, залишать слід тільки якщо вони присутні на декількох кадрах серії. Однак mean поборе шуми краще.

У цілому ж укропи говорять самі за себе - ніякої обробки одиничного кадру не вдасться зменшити шуми настільки ефективно, т.к. розмір шуму в даному прикладіперевищує розмір деяких деталей.

Коли цей метод можна застосувати?
- при зйомці з недостатнім освітленням на коротких витримках (немає налаштування витримки або вона обмежена камерою, немає штатива, немає можливості знімати довго і т.д.)
- при необхідності зменшити шум на низьких iso, наприклад, перед активною подальшою пост-обробкою.

Де не поможе?
- при зйомці об'єктів, що рухаються (хоча можливе вибіркове видалення шуму в нерухомих областях).
- не позбавить постійної складової шуму

20 серпня 2009 о 22:21

Очищення зображення від шуму, деякі методи

  • Блог компанії Gil Algorithms

Якщо Ви бачили картинку, яка виходить у сучасних цифрових фотоапаратах без обробки, то Ви знаєте, що вона виглядає просто жахливо. Вона наповнена шумом. Навіть коли Ви завантажуєте картинку на комп'ютер і вона вже пройшла внутрішню обробкуу фотоапараті, якщо її збільшити та подивитися на окремі пікселі, можна побачити, як мужньо цифрові алгоритми борються з шумом та програють у цій нерівній війні.
Деякі алгоритми стирають дрібні деталігеть, цим відомі стільникові телефони Nokia. У деяких випадках деталі залишилися, але вони оточені кольоровими острівцями складної форми, це можна побачити у фотоапаратах Sony. Ну і так далі – у кожного методу свої проблеми.

Які ж засоби, щоб прибрати цей шум, і які не порушують чужих патентів? Сподіваюся, що цей невеликий огляд буде корисним.

1. Перехід у координати яскравість-колір.
Це перетворення можна здійснювати багатьма способами: HSV, L * a * b і т.п. З деяких причин, в які ми не заглиблюватимемося:
- людське око набагато менш чутливе до деталей колірної інформації, ніж яскравості
- шум у колірній компоненті, навпаки, набагато вищий, ніж у яскравості
Тому проста фільтрація колірної компоненти + зворотне відновлення, зазвичай, роблять картинку значно кращою.

2. Медіанний фільтр.
Гарним простим способомочистити картинку від шуму є медіанний фільтр Im_new(x,y)=median(dx=-1..1,dy=-1..1)Im(x+dx,y+dy).
Цей метод має безліч варіацій, наведу лише деякі:
2.1 Крок 1: обчислити M1 = median (C, Cnorth, Csouth); M2 = median (C, Ceast, Cwest); M3 = median (C, Cne, Csw); M4 = median (C, Cnw, Csw); тут Cnort, Cne,...Cnw - вісім сусідніх пікселів з околиці 3x3, C - центральний піксель
Крок 2 - обчислити Ma = median (C, M1, M2); Mb = median (C, M3, M4);
Крок 3 - обчислити Csmooth = median (C, Ma, Mb);
Крок 4 - замінити C Csmooth.
2.2 Крок 1: відсортувати пікселі з околиці 3x3 за зростанням, P...P.
Крок 2: Якщо центральний піксель дорівнює P – замінити його на P, якщо центральний піксель дорівнює P – замінити його на P, в інших випадках залишити без зміни.
Цей напрямок використовує компанія Kodak, а також більшість сканерів та факс-апаратів.

3. Фільтри, що керують величиною корекції
Цей метод спочатку пропонує згладити картинку якось грубо, наприклад за допомогою low-pass filter, bilateral filter або ще як-небудь. А потім робиться така процедура
Im_new(x,y)=Im(x,y)+S(Im(x,y)-Im_smooth(x,y),threshold).
Функція-передавач S може бути влаштована по-різному, наприклад:
S(x,threshold) = x, якщо -threshold threshold; S(x,threshold)=-threshold якщо x<-threshold. Если выбрать threshold примерно равным величине шума, то весь шум пропадет, а детали и мелкие объекты останутся четкими.

4. Bilateral filter
Дуже цікавий фільтр, винайдений у 2003 році. За описами надсилаю до Інтернету.
Ось тут досить хороша стаття: scien.stanford.edu/class/psych221/projects/06/imagescaling/bilati.html
Цікавим різновидом bilateral filter є, також T-filter:
Крок 1: Знайти всі пікселі в околиці, значення якого відрізняються від вихідного пікселя не більше, ніж на заданий threshold.
Крок 2: Зосередити ці знайдені пікселі та зберегти значення.

5. Фільтри, що використовують спектральне подання сигналу
Так працює, наприклад, Photoshop. Суть ідеї в тому, щоб зробити навколо кожного пікселя перетворення Фур'є, потім стерти високі частоти і зробити зворотне перетворення.
Замість перетворення Фур'є використовуються також інші ортогональні базиси, іноді досить хитромудрі. По суті, це ціла родина методів.

6. Фільтри, що виділяють домінантний напрямок
Ці фільтри у кожній точці спочатку знаходять домінантний напрямок (напрямок градієнта яскравості), а потім усереднюють сигнал лише в перпендикулярному напрямку. Таким чином, лінії та дрібні деталі залишаються чіткими. Хороші різновиди цього алгоритму враховують значення матриці других похідних.
Це ціла родина алгоритмів, опис яких можна також знайти в Інтернеті.

7. Локальна класифікація фрагментів
Ці фільтри особливо добре працюють із спеціальними зображеннями, такими як текст, зоряне небо тощо.
Спочатку складається база даних типових елементів такого зображення, наприклад кілька сотень фрагментів NxN пікселів, які вже очищені від шуму.
Алгоритм працює так: околиця кожного пікселя порівнюється з цими фрагментами та вибирається один, який найбільш схожий. Потім значення вихідного пікселя на брудній картинці замінюється значенням аналогічного пікселя, розташованого в цьому ж місці на чистому фрагменті.

8. Наведу в кінці «простецький» спосіб, який також можна використовувати у ряді випадків.
Крок 1: Зменшити картинку (застосовуючи якийсь розумний алгоритм Downscaling)
Крок 2: Збільшити її назад (застосовуючи якийсь розумний алгоритм Upscaling)
Справа в тому, що алгоритми Upscaling/Downscaling бувають дуже потужними (Lanczos filter, фрактальні методи тощо), тому результат виходить цілком задовільним. Цей метод можна використовувати як простий, але досить ефективної компресії.

Шуми можуть бути випадкові аналогові, імпульсні та різного роду детерміновані.

Випадкові аналогові шуми

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

Для усунення таких шумів застосовуються методи фільтрації, що згладжує.

Дія цих методів заснована на цифровій фільтрації шляхом усереднення значення сигналу по околиці пікселі, що зчитується. У програмах типу PhotoShop ці фільтри, що згладжують, звуться Blur, Gaussian Blur.

Blur дасть пряме усереднення. Gaussian Blur вводить ваги піксель у матрицю усереднення згідно із законом Гауса.

Blur є застарілим, оскільки не дозволяє регулювати ступінь усереднення. Ступінь згладжування регулюється неодноразовим застосуванням фільтра.

Gaussian Blur є більш сучасним. У ньому можна регулювати параметр усереднення, таким чином регулюючи згладжування.

Необхідно пам'ятати, що використання таких фільтрів може призводити до втрати різкості зображення, так як усереднюється не тільки шумова структура, а й пікселі, що формують межу зображення. У деяких випадках доцільно після процедури згладжування додатково здійснювати процедуру маскування нерізкого.

Випадкові імпульсні шуми

Під випадковими імпульсними шумами розуміються відносно рідко розташовані поодинокі дефекти, типу подряпин, порошинок. Стосовно них процедура згладжування зазвичай не ефективна внаслідок того, що розміри таких дефектів досить великі.

Для усунення таких дефектів застосовуються фільтри рангопорядкового класу. Такі рангопорядкові фільтри створюють серії піксель вздовж рядка, упорядковують ці серії, розташовуючи їх по порядку зростання, відкидають мінімальні та максимальні значення піксель, які можуть бути дефектними і знаходять середнє значення в цій серії. Це середнє значення ставлять місце аналізованої пікселі.

Таким чином, можна усунути відносно дрібні дефекти як типу подряпин, так і типу пилу. У принципі можна змінювати довжину серії і таким чином здійснювати селекцію більших дефектів.

Однак, для досить великих дефектів, які перевищують довжину серії піксель, цей метод не застосовується.

Саме цим методом працює фільтр Dust and Scratches.

При більшому імпульсному шумі необхідно вдаватися до напівавтоматичного ретушування, в якому усунення дефектів зображення здійснюється шляхом заміни дефектних пікселів на пофарбовані пікселі з ближнього оточення. З ближнього оточення вибирається пікселя і сідає на дефектне місце.


У програмному забезпеченні така процедура називається штамп і потребує значних витрат часу. Перш ніж приступити до такої процедури, необхідно проаналізувати зображення в масштабі збільшення під час репродукування та усунути ті дефекти, які будуть помітні при цьому масштабі. У принципі, така сама процедура може бути використана і для редакційної корекції, коли необхідно доповнити якісь втрачені деталі зображення.

Детерміновані шуми зображення

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

Зчитування растрового зображення може призвести до небажаної взаємодії растрової структури зображення з новою структурою розтрової генерованої в процесі фотовиводу.

Можливо два шляхи вирішення цієї проблеми:

1. усунення растрової структури оригіналу у процесі сканування та обробки. Для цього використовуються методи подібні до методів аппретурної фільтрації при зчитуванні зображення з більшою апертурою, або їх цифровий аналог, тобто усереднення піксель і формування усередненого сигналу.

Теоретично і експериментально показали, що найкращі результати виходять за узгодженні обсягу апертури з розмірами растрового елемента растрової структури оригіналу. Тому в процесі сканування необхідно точно визначити лініатуру растру, який використовувався в оригіналі і фільтр де растрування вибирати у відповідність до цієї лініатури.

Для визначення лініатури растру в оригіналі можливе використання спеціальних тестів. Деякі сучасні програми, наприклад LinoColor, дозволяють у процесі попереднього сканування визначати лініатуру і відповідно до неї встановлювати оптимальний фільтр дерастрування.

Недоліки такого усунення:

1) втрата різкості зображення;

2) внаслідок різних кутів повороту растрових структур зображення для різних фарб, повного узгодження апертури дерастрування і растрової структури немає і неминучі залишкові флуктуації у зображенні (муарообразование).

2. зчитування растрової структури з повним збереженням. В результаті ми отримаємо при зчитуванні трьох растрових кольороподілених зображення зі збереженням растрової структури. По суті ми отримаємо зображення у системі СМУК. Далі це зображення можна перекласти в Lab, втративши таким чином інформацію про растрову структуру. Потім всю обробку перевести в Lab і перейти до СМУК зі своєю растровою структурою.

Для цього необхідно зчитувати з високою роздільною здатністю. СopiDot – відповідне програмне забезпечення для перекладу СМУК у Lab.

Нині складність у тому, що зчитування кольорових зображень має значні труднощі. Тому такого роду технологія CopiDot, в даний час, використовується для зчитування фотоформи растрованих і кольороподілених.

Особливо цікавою є ця технологія, яка останнім часом сильно розвинулася, необхідністю використання якихось архівних фотофрм технології C-t-P (комп'ютер-друкарська форма).

3. перерастрування з використанням растру нерегулярної структури (частотно-модульованого).

Регулювання значень інтенсивностей

Існує можливість встановлення значень інтенсивностей на зображенні за допомогою функції imadjust, де вказаний діапазон інтенсивностей результуючого зображення.

Розглянемо приклад збільшення контрасту зображення з низьким рівнем контрастності шляхом перерозподілу значень даних на весь діапазон.

I = imread("pout.tif"); J = imadjust(I);

Вихідне зображення

Imshow(J) figure, imhist(J,64)

На малюнку відображено перетворене зображення та його гістограма. Зазначимо, що в результаті посилення розмаїття зображення, гістограма заповнює весь діапазон.


Перетворене зображення та його гістограма

Опис регулювання меж діапазону

Існує можливість опису діапазону вихідних та результуючих значень з використанням функції imadjust. Для цього функції imadjust в якості аргументу вказуються діапазони у вигляді двох векторів. Перший вектор містить найменше та найбільше значення інтенсивностей вихідного зображення, які будуть відображені тим діапазоном яскравостей, який вказано у другому векторі.

Примітка.
Зазначимо, що значення інтенсивностей повинні бути в діапазоні між 0 і 1, незалежно від формату зображення. Якщо зображення представлене у форматі uint8, діапазон значень містить 255 градацій, а зображення у форматі - 65535 градацій.

Наприклад, зменшення контрасту зображення досягається за рахунок зменшення діапазону інтенсивностей. На зображенні внизу пальто людини занадто темне і на ньому не видно деталей. Але це можна виправити за допомогою функції imadjust, відобразивши діапазон вихідного зображення у форматі uint8 у діапазон перетвореного зображення. Це перетворення значно розширить динамічний діапазон і покращить візуальне сприйняття темних областей зображення. Зазначимо також, що це значення інтенсивностей вище 51, будуть відображатися як 255, тобто. білий колір.

I = imread("cameraman.tif"); J = imadjust(I,,); imshow(I) figure, imshow(J)


Зображення після перетворення динамічного діапазону

Встановлення обмежень автоматичної корекції

Зазвичай при використанні функції imadjust необхідно виконати дві основні дії:

  1. Переглянути гістограму та визначити межі значень інтенсивностей.
  2. Описати ці межі для подальшого використання функції imadjust.

Найпростіший шлях для опису цих меж полягає у використанні функції стрітчлім.

Ця функція обчислює гістограму зображення та визначає межі коригування діапазону автоматично. Функція stretchlim повертає ці значення у вигляді вектора, який використовується як аргумент у функції imadjust. Наприклад,

I = imread("rice.png"); J = imadjust(I,stretchlim(I),);

За умовчанням, функція stretchlim використовує значення інтенсивностей, які становлять нижню 1% (0.01) та верхню 1% (0.99) частину діапазону як межі регулювання.

Гамма корекція

Функція imadjust відображає найменші значення ще меншими, а найбільші – ще більшими. За промовчанням проміжні значення відображаються лінійно. Наприклад, значення інтенсивностей, які знаходяться посередині діапазону інтенсивностей вихідного зображення, відповідають тим значенням інтенсивностей, які знаходяться посередині діапазону перетвореного зображення.

У функції imadjust можна вказувати додатковий аргумент, який описує рівень гамма корекції. Залежно від значення гами залежність між значеннями вихідного та перетвореного зображення може бути нелінійною. Тому значення інтенсивностей, які знаходяться посередині діапазону інтенсивностей вихідного зображення, не відповідають тим значенням інтенсивностей, які знаходяться посередині діапазону перетвореного зображення.

Параметр гамма може набувати значення від 0 до нескінченності. Якщо гамма дорівнює 1 (за умовчанням), тоді лінійне перетворення. Якщо гамма менша за 1, то діапазон з малими значеннями інтенсивності стискається, а діапазон з великими значеннями інтенсивності розтягується. Якщо гамма більше 1, то навпаки - діапазон із малими значеннями інтенсивності розтягується, а діапазон із великими значеннями інтенсивності розтягується.

Сказане вище продемонстровано малюнку. Три кривих перетворення показують відображення значень інтенсивностей при різних значеннях гамма - менше, і більше одиниці. (На зображенні x-координату є значення інтенсивностей вихідного зображення, а y-координата - значення інтенсивностей результуючого зображення.)


Відображення трьох різних установок гамма-корекції

Розглянемо приклад гамма корекції зображення. Зазначимо, що при використанні функції imadjust діапазони даних вихідного та результуючого зображень описані у вигляді порожніх матриць. Якщо вони описані в такий спосіб, тобто. у вигляді порожніх матриць, то функція imadjust використовує весь діапазон . Результат застосування такого підходу показано на зображенні.

Imread("forest.tif") I = ind2gray(X,map); J = imadjust(I,,,0.5); imshow(I) figure, imshow(J)


Зображення до та після застосування гама корекції

Контрастно-обмежене адаптивне вирівнювання гістограми

В якості альтернативи можна використовувати функцію histeq, яка виконує контрастно-обмежену адаптивну гістограмну еквалізацію з використанням функції adapthisteq. Функція працює з цілим зображенням, а функція adapthisteq може працювати з невеликими областями зображення. Контраст кожної частини зображення підвищується, що з зміною форми гістограми. Після виконання вирівнювання (еквалізації), функція адаптаціїпоєднує краї локальних областей із застосуванням білінійної інтерполяції, виключаючи штучно створені межі.

Щоб уникнути посилення шуму на зображеннях, можна використовувати функцію адаптації зі спеціальними параметрами для обмеження контрасту, що особливо важливо для гомогенних (однорідних) областей.

Для ілюстрації розглянемо використання функції adapthisteq при корекції розмаїття на зображенні. Вихідне зображення має низький контраст, більшість значень інтенсивностей зосереджено у середині діапазону. Функція adapthisteq виконує рівномірний розподіл значень інтенсивностей вздовж усього діапазону.

I = imread("pout.tif"); J = adapthisteq(I); imshow(I) figure, imshow(J)


Зображення після обробки методом контрастно-обмеженого адаптивного вирівнювання гістограми (та його гістограма)

Декореляційне розтягування

Декореляційне розтягування покращує співвідношення кольорів на зображенні з урахуванням кореляційних залежностей. При покращенні зображень дуже важливо знайти межу покращення, щоб надмірне покращення не призводило до виникнення неіснуючих деталей. Тому доцільно застосовувати метод декореляційного розтягування, який реалізовує функція decorrstretch.

У більшості випадків кількість кольорів у зв'язці NBANDS на зображенні дорівнює трьом. Функція decorrelation може застосовуватись незалежно від кількості кольорів у зв'язці.

При перетворенні значень вихідних кольорів зображення діапазон відображення, як правило, збільшується. Інтенсивності кольорів кожного пікселя перетворюються на власний колірний простір з ковараційною або кореляційною матрицею з розмірністю NBANDSxNBANDS, розтягуються, вирівнюються та трансформуються назад.

Приклад декореляційного розтягування

Застосуємо операції декореляції та розтягування до деяких зображень з бібліотеки, яка розміщена у директорії imdemos системи Matlab. Бібліотека включає LANDSAT-зображення невеликої річки в Колорадо. Обробимо це зображення методом декореляційного розтягування:

  1. Зображення складається із семи діапазонів, які мають бути представлені трьома видимими кольорами: A = multibandread("littlecoriver.lan", , ... "uint8=>uint8", 128, "bil", "ieee-le", ... ("Band", "Direct",));
  2. Виконуємо декореляційне розтягування: B = decorrstretch(A);
  3. Візуалізація результатів: imshow(A); figure; imshow(B)

Порівняємо два зображення. На вихідному зображенні переважає фіолетовий (червоно-синій) відтінок, а результуюче зображення має більш розтягнутий колірний діапазон.


Зображення невеликої річки в Колорадо до (ліворуч) та після (праворуч) декореляційного розтягування

Покажемо розкид кольорів різних діапазонів зображення до та після декореляції та вирівнювання:

RA = A(:,:,1); gA = A(:,:,2); bA = A(:,:,3); figure, plot3(rA(:),gA(:),bA(:),"."); grid("on") xlabel("Red (Band 3)"); ylabel("Green (Band 2)"); ... zlabel("Blue (Band 1)") rB = B(:,:,1); gB = B(:,:,2); bB = B(:,:,3); figure, plot3(rB(:),gB(:),bB(:),"."); grid("on") xlabel("Red (Band 3)"); ylabel("Green (Band 2)"); ... zlabel("Blue (Band 1)")


Розкид кольорів різних діапазонів зображення до і після декореляції та вирівнювання

Додаткове лінійне розтягування розмаїття

Зараз розглянемо таке ж перетворення, але йтиметься про лінійне розтягування контрасту, яке застосовується після декореляційного розтягування:

Imshow(A); C = decorrstretch(A, "Tol", 0.01); figure; imshow(C)

Порівняємо вихідне та перетворене зображення.


Зображення невеликої річки в Колорадо після декореляційного розтягування та лінійного розтягування контрастів

Лінійне розтягування контрастів є ще одним додатковим засобом покращення після розтягування колірного діапазону зображення. У нашому випадку розтяг колірного діапазону стосується кожної колірної складової.

Для отримання більш детальної інформації див. опис функції strechlim.

Примітка.
Лінійне розтягування контрасту можна застосовувати як окрему операцію після виконання декореляційного розтягування, використовуючи функції strechlim та imadjust. Це є одним з альтернативних шляхів, однак часто не призводить до хороших результатів для зображень, які представлені у форматі uint8 і uint16. Такий результат пояснюється розподілом пікселів у діапазоні (або ). Опції функції decorrstretch дозволяють обійти це обмеження.

Видалення шуму

Цифрові зображення піддаються впливу різних типів шумів. Існує кілька основних причин появи шуму, які також залежать від способу формування зображень. Наприклад:

  • Якщо зображення отримано шляхом сканування фотографічної плівки, зерна плівки є джерелом шуму. Поява шуму може пояснюватися також пошкодженням самої плівки або вноситься пристроєм, що сканує.
  • Якщо зображення захоплене в цифровому форматі, механізм формування даних (CCD-детектор, квантування) є джерелом шуму.
  • Електронна передача даних зображення може бути джерелом шуму.

Програма забезпечує кілька шляхів повного або часткового усунення шуму зображення. Для усунення різних видів шуму розроблено різноманітні методи. Серед них

  1. Використання лінійної фільтрації;
  2. використання медіанної фільтрації;
  3. Використання адаптивної фільтрації.

Для демонстрації ефекту від роботи перерахованих вище методів у програмі існує функція imnoise, яка додає зображення різні типи шуму. Розглянемо приклади використання цієї функції.

Використання лінійної фільтрації

Лінійну фільтрацію можна використовувати для видалення шумів певного типу. Для цього годяться такі фільтри як середній та фільтр Гауса. Наприклад, середній фільтр використовується для видалення зернистості на зображеннях. Оскільки значення інтенсивності кожного пікселя дорівнює середньої інтенсивності околиці, то це призводить до придушення зернистості.

Використання медіанної фільтрації

Медіанна фільтрація схожа на використання усереднюючого фільтра, де значення інтенсивності кожного пікселя є усередненим значенням інтенсивностей пікселів відповідної околиці. У багатьох випадках використання медіанного фільтра при вирішенні задач усунення шуму є більш ефективним, ніж звичайне усереднення. Застосування медіанної фільтрації призводить до менших спотворень кордонів, порівняно з операцією усереднення. Функція medfilt2 виконує медіанну фільтрацію.

Примітка.
Медіанна фільтрація є порядково-статистичною фільтрацією та відома ще як рангова фільтрація. Для отримання детальнішої інформації див. опис функції ordfilt2.

Розглянемо приклад, у якому порівняємо використання усереднюючого фільтра та функції medfilt2 для видалення шуму типу "сіль та перець". Вплив цього шуму полягає в тому, що випадково вибрані пікселі стають чорними або білими (тобто їм присвоюються екстремальні значення з існуючого діапазону). В обох випадках розмір околиці, що використовується, дорівнює 3x3.

Використання адаптивної фільтрації

В основі функції wiener2 лежить вінерівський фільтр (один із типів лінійного фільтра) для адаптивної локальної обробки зображень. Якщо значення середньоквадратичного відхилення інтенсивностей пікселів у цій локальній області велике, то wiener2 виконує невелике згладжування. Якщо ж це відхилення невелике, область згладжування більше.

Цей підхід часто буває ефективнішим, ніж звичайна лінійна фільтрація. Перевага адаптивного фільтра ще полягає в тому, що він зберігає краї та інші високочастотні частини об'єктів зображення. Однак, вінерівський фільтр вимагає більшого часу для обчислень, ніж лінійний фільтр.

Функція wiener2 краще працює з "білим" шумом, наприклад гауссівським. Розглянемо приклад застосування функції wiener2 для обробки зображення Сатурна, яке зашумлене гаусовим шумом. Для інтерактивної демонстрації фільтрації шуму можна використовувати nrfiltdemo.

RGB = imread("saturn.png"); I = rgb2gray(RGB); J = imnoise(I,"gaussian",0,0.005); K = wiener2(J,); imshow(J) figure, imshow(K)


Зашумлене зображення (ліворуч) та зображення після фільтрації (праворуч)

Для демонстрації роботи методів усунення шуму використовуються зображення з різними видами шуму. Для формування цих зображень використовується функція імнозі. До речі, зображення, які наведені в цьому розділі, сформовані з використанням цієї функції.

Зображення може ушкоджуватися шумами та перешкодами різного походження, наприклад шумом відеодатчика, шумом зернистості фото матеріалів та помилками в каналі передавача. Їх вплив можна мінімізувати, користуючись класичними методами статистичної фільтрації. Інший можливий підхід ґрунтується на використанні інших евристичних методів просторової обробки.

Шуми відеодатчиків або помилки в каналі передачі зазвичай виявляються на зображенні як розрізнені зміни ізольованих елементів, що не мають просторової кореляції. Спотворені елементи часто дуже помітно відрізняються від сусідніх елементів. Це спостереження послужило основою багатьох алгоритмів, які забезпечують придушення шуму.

Застосування цифрової фільтрації зображень дозволяє суттєво покращити якість зображення, одержуваного у процесі СШП зондування. Далі буде розглянуто застосування лінійної фільтрації для згладжування шумів на зображенні (низькочастотна фільтрація), підкреслення меж об'єктів з використанням високочастотної фільтрації, а також метод медіанної фільтрації усунення перешкод імпульсного типу.

Мал. 7 пояснює простий пороговий метод придушення шуму, при використанні якого вимірюють послідовно яскравість всіх елементів зображення.

Мал. 3.7. Пороговий спосіб придушення шуму.

Якщо яскравість даного елемента перевищує середню яскравість групи найближчих елементів на деяку граничну величину, яскравість елемента замінюється на середню яскравість:

Якщо
]

Оскільки шум просторово декорельований, його спектрі, зазвичай, містяться вищі просторові частоти, ніж у спектрі звичайного зображення. Отже, проста низькочастотна просторова фільтрація може бути ефективним засобом згладжування шумів. Масив Q розміру MM вихідного зображення формується шляхом дискретної згортки масиву F розміру NN вихідного зображення зі згладжуючим масивом H розміру LL згідно з формулою

Згладжування шуму забезпечується низькочастотним фільтруванням за допомогою масиву H з позитивними елементами. Нижче наведені масиви, що згладжують, трьох різновидів, часто звані шумоподавлюючими масками:

Ці масиви нормовані для отримання одиничного коефіцієнта передачі, щоб процедура придушення шуму не викликала усунення середньої яскравості обробленого зображення. Якщо необхідне придушення шуму пов'язані з використанням масивів великого розміру доцільно виконувати згортку непрямим чином, застосовуючи перетворення Фур'є, оскільки це дає виграш обсягом обчислень.

Підкреслення кордонів.

У системах електронного сканування зображень сигнал, що отримується, можна пропустити через електричний фільтр верхніх частот. Інший спосіб обробки сканованих зображень полягає у використанні нерізкого маскування. При цьому зображення як би сканується двома апертурами, що перекриваються, одна з яких відповідає нормальному дозволу, а інша - зниженому. В результаті одержують відповідно масив нормального зображення F (j, k) масив нечіткого зображення F L (j, k). Потім формується масив маскованого зображення

F M (j, k) = c F (j, k) - (1-c) F L (j, k),

де C – коефіцієнт пропорційності. Зазвичай значення C у межах від 3/5 до 5/6, тобто. відношення складових нормальні та знижені чіткості змінюється від 1.5 до 5.

Підкреслення меж можна також здійснити, виконуючи дискретну фільтрацію згідно зі співвідношенням (1) з використанням імпульсного високочастотного відгуку H. Нижче представлені три типові маски для виконання високочастотної фільтрації:




Ці маски відрізняються тим, що сума їх елементів дорівнює одиниці.

Ще одним способом наголошування меж є так звана статистичне диференціювання. Значення яскравості кожного елемента поділяється на статистичну оцінку середньоквадратичного відхилення (j,k)

G(j,k) = F(j,k)/(j,k).

Середньоквадратичне відхилення

обчислюється в околиці N(j,k) елемента з координатами (j,k). Функція
- середнє значення яскравості вихідного зображення в точці з координатами (j,k), що наближено визначається шляхом згладжування зображення за допомогою оператора низькочастотної фільтрації згідно з формулою (3.1). Покращене зображення, представлене масивом G (j,k), відрізняється від вихідного зображення тим, що його яскравість вища на межах, елементи яких не схожі на сусідні елементи, і нижче на всіх інших ділянках. Слід зазначити, що підкреслення корисних меж супроводжується зростанням шумових складових.

Медіанний фільтр.

Медіанна фільтрація - метод нелінійної обробки сигналів, розроблений Тьюкі. Цей метод є корисним при придушенні шуму на зображенні. Одномірний медіанний фільтр є ковзним вікном, що охоплює непарне число елементів зображення. Центральний елемент замінюється на медіану всіх елементів зображення у вікні. Медіаною дискретної послідовності

a 1 , a 2 , ..., a N для непарного N є той елемент, для якого існують (N-1)/2 елементів, менших або рівних йому за величиною, (N- 1)/2 великих або рівних йому величині. Нехай у вікно потрапили елементи зображення рівнями 80, 90, 200, 110, 120; у цьому випадку центральний елемент слід замінити значенням 110, яке є медіаною впорядкованої послідовності 80, 90, 110, 120, 200. Якщо в цьому прикладі значення 200 є шумовим викидом монотонно зростаючої послідовності, то медіанна фільтрація забезпечить істотне поліпшення. Навпаки, якщо значення 200 відповідає корисному імпульсу сигналу (при використанні широкосмугових датчиків), обробка призведе до втрати чіткості відтворюваного зображення. Таким чином, медіанний фільтр в одних випадках забезпечує зменшення шуму, в інших - викликає небажане придушення сигналу.

Медіанний фільтр не впливає на ступінчасті або пилкоподібні функції, що зазвичай є бажаною властивістю. Однак цей фільтр пригнічує імпульсні сигнали, тривалість яких не перевищує половини ширини вікна. Фільтр також викликає сплощення вершини трикутної функції.

Можливості аналізу дії медіанного фільтра обмежені. Можна показати, що медіана добутку постійної K і послідовності f (j) дорівнює

med (K f (j)) = K med (f (j)).

Крім того,

med (K + f (j)) = K + med (f (j)).

Однак медіана суми двох довільних послідовностей f(j) і g(j) не дорівнює сумі їх медіан:

med(g(j)+f(j))=med(g(j))+ med(f(j)).

Можливі різні стратегії застосування медіанного фільтра для зменшення шумів. Одна з них рекомендує починати з медіанного фільтра, вікно якого охоплює три елементи зображення. Якщо ослаблення сигналу є незначним, вікно фільтра розширюють до п'яти елементів. Так роблять до тих пір, поки медіанна фільтрація починає приносити більше шкоди, ніж користі. Інша можливість полягає у здійсненні каскадної медіанної фільтрації сигналу з використанням фіксованої або змінної ширини вікна. Загалом ті області, які залишаються без зміни після одноразової обробки фільтром, не змінюються після повторної обробки. Області, в яких тривалість імпульсних сигналів становить менше половини ширини вікна, будуть змінюватися після кожного циклу обробки.

Концепцію медіанного фільтра легко узагальнити на два виміри, застосовуючи двовимірне вікно бажаної форми, наприклад, прямокутне або близьке до кругового. Очевидно, що двовимірний медіанний фільтр із вікном розміру LL забезпечує більш ефективне придушення шуму, ніж послідовно застосовані горизонтальний та вертикальний одномірні медіанні фільтри з вікном розміру L1; двомірна обробка, однак, призводить до більш істотного послаблення сигналів.

Медіанний фільтр ефективніше пригнічує розрізнені імпульсні перешкоди, ніж гладкі шуми. Медіанну фільтрацію зображень для придушення шумів слід вважати евристичним методом. Її не можна застосовувати у сліпу. Навпаки, слід перевіряти отримані результати, щоб у доцільності медіанної фільтрації.