Фільтрація зображень засобами openCV


Більшість зображень піддається впливу різного роду шумів в процесі передачі їх по каналах зв'язку, а також на етапі формування. Тому, першим етапом обробки зображень є фільтрація. Наявність шумів на зображенні може причинити неточності та спотворення на етапі сегментації та розіпізнавання. Наприклад, система може сприйняти шуми за окремі об'єкти, що може негативно вплинути на подальші дослідження.
В результаті досліджень можна виділити такі основні види шумів: аддитивний Гаусовий та імпульсний. Аддитивний Гаусовий шум характеризується додаванням до кожного пікселя зображення значень з відповідного нормального розподілу з нульовим середнім значенням. Такий шум з'являється в пристроях формування цифрових зображень. Імпульсний шум характеризується заміною частини пікселів значеннями фіксованої або випадкової величини. Такий шум пов'язаний з втратами при передачі зображень по каналах зв'язку. Зазвичай, в одному зображенні можна зустріти обидва види шумів, такі шуми називають комбінованими.
Всі види фільтрів можна розділити на такі класи: частотні, лінійні, нелінійні, комбіновані. У класі частотних фільтрів обробці підлягають коефіцієнти розкладання зашумленого сигналу по базису Фур'є або інших базисах, зокрема, вейвлет-базису. Перетворення Фур'є особливо важливе для лінійних фільтрів, оскільки множення в Фур'є-області для частотних методів - це операція згортки для вихідного зображення. У цифровій обробці сигналів широко використовуються методи лінійної фільтрації. Однак, лінійна фільтрація дає хороші результати лише в разі наявності гауссова адитивного шуму. У випадку імпульсного шуму ефективніше працюють методи нелінійної фільтрації, зокрема медіанна та рангова фільтрація. У випадку комбінованого шуму можна послідовно застосовувати лінійні і нелінійні фільтри або компонувати ці фільтри так, щоб посилити їх сильні сторони і послабити недоліки, це відбувається при використанні гібридних фільтрів. Лінійні фільтри ще називають згладжуючими або усреднючими, тому що відповідь лінійного фільтра усереднює значення пікселів, що містяться в апертурі, і таким чином згладжує зображення.

Гаусовий фільтр
Фільтр Гауса усереднює по закону Гауса пікселі довкола точки. Властивості:

Згортка з самим собою - фільтр Гауса

Згортка з радіусом δ двічі надасть результат аналогічний згортці з радіусом δ √ 2  .
Ядро сепарабельне - розкладається в суму одномірних ядер.
Приклад: 2D згортка:

Розкладання фільтру на 2 1D фільтри

Згортка по стрічках

Аналогічно відбувається згортка по стовбцях.

Приклад застосування Гаусового фільтру з допомогою OpenCV

Code:

                        
Imgproc.GaussianBlur(img, dst, new Size(5, 5) ,1 ,1);
img - вхідне зображення;
dst - результат фільтрації;
new Size(5, 5) - розмір вікна.

Медіанний фільтр:
Суть медіанного фільтру полягає у виборі медіани із набору пікселів околиці. Формула:

Спочатку усі значення пікселів околиці сортуються у певному порядку (зростання) та вибирається медіанне значення, яким замінюється центральний піксель

Code:

                        
Imgproc.medianBlur(img, dst, 5);
img - вхідне зображення;
dst - результат фільтрації;
5 - розмір вікна (у даному випадку 5х5).

Результат роботи медіанного фільтру:

Зашумлене зображення (комбінований шум) Медіанний фільтр 5x5
Медіанний фільтр 9x9 Медіанний фільтр 21x21

Приклад застосування алгоритмів фільтрації зображень з різними розмірами вікон наведено нижче

Gauss Blur
Bilateral Median

Вирішення проблеми фільтрації зображень
Шум наявний практично в усіх зображеннях. Однак, у такій галузі як медицина, наявність шуму може значно вплинути на якість та точність постановки діагнозу. Наприклад, шум може бути сприйнятим як частина досліджуваного об'єкта і т.п.
Етап фільтрації зображень відноситься до низького рівня комп'ютерного зору та здійснює значний вплив та подальші етапи сегментації та розпізнавання.
Для зменшення рівня шуму запропоновано застосовувати 2 типи фільтрів: медіанний для зменшення імпульсних шумів та гаусовий для зменшення рівня адитивного шуму. Для оцінки фільтрації використовується значення пікового відношення сигналу до шуму(PSNR). У залежності від значення PSNR відбуватиметься коригування розміру вікна фільтрів.

Програмний код : https://github.com/olehpitsun/CVforStudents/tree/master/src/task1
Література:

Гонсалес Р. Цифровая обработка изображений / Р. Гонсалес,Р. Вудс. – М.: Техносфера, 2005. – 1072 с.

Порівняння алгоритмів фільтрації медичних зображень за оцінками їх якості / Бондіна Н.М., Калмичков О.С., Козіна О.А. // Вісник НТУ "ХПІ". Серія: Інформатика та моделювання. – Харків: НТУ "ХПІ". – 2013. – No 39 (1012). – С. 15 – 21.

Порівняльний аналіз алгоритмів фільтрації медичних зображень / Бондіна Н.М., Калмичков О.С., Кривенцов В.Е. // Вісник НТУ "ХПІ". Серія: Інформатика тамоделювання. – Харків: НТУ "ХПІ". – 2012. – No 38. – С. 14 – 25.