Розмивання Гауса

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Оригінал зображення
Original image
Розмите зображення з σ = 2
Розмите зображення Гаусівським розмиттям,
де σ = 2.

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

Принцип роботи[ред.ред. код]

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

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

G(x) = \frac{1}{\sqrt{2\pi} \sigma} e^{-\frac{x^2}{2 \sigma^2}}

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

G(x,y) = \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 + y^2}{2 \sigma^2}}[1][2]

де x — це відстань від початку координат в осі абсцис, y — це відстань від початку координат у осі ординат, а σ є стандартне відхилення розподілу Гауса. Коли метод застосовується у двох вимірах, отримується поверхня, контури якої є концентричні кола розподілу Гауса з центральної точки. Значення з цього розподілу використовуються для створення матриці згортки. Для кожного нового значення пікселя визначається середнє зважене в околі пікселя. Значення поточного оригінального пікселя має більшу вагу (найвище значення розподілу Гауса), а сусідні пікселі отримують все меншу вагу в залежності від того наскільки далеко вони знаходяться від поточного оригінального пікселя. Це надає ефект розмитості, яка зберігає кордони та краї краще, ніж інші, більш аналогічні фільтри розмиття.

Теоретично, в кожній точці зображення буде відмінним від нуля результат функції Гауса, це означає, що для розрахунку для кожного пікселя необхідно брати значення усіх пікселів у зображенні. На практиці, при обчисленні дискретного спрощення функції Гауса, вага пікселів на відстані більш ніж 3σ достатньо мала, щоб мати якийст вплив на середнє зважене значення і вважається нулем. Значення пікселів, що розташовані за межами цього діапазону можуть бути проігноровані. Як правило, програмі обробки зображень необхідно тільки розрахувати матриці з розмірами \lceil6\sigma\rceil × \lceil6\sigma\rceil, щоб забезпечити результат, який є досить близьким до отриманого від усього розподілу Гауса.

Розмивання Гауса може застосовуватися для двовимірних зображень у вигляді двох незалежних одновимірних, так званих лінейно розділених розрахунків. Тобто, ефект застосування двовимірної матриці може бути досягнуто за рахунок застосування ряду одновимірної матриці Гауса в горизонтальному напрямку, а потім повторно у вертикальному напрямку. З точки зору швидкості обчислення, це корисна властивість, оскільки розрахунки можуть бути виконані в O\left(w_\text{kernel}  w_\text{image}  h_\text{image}\right) + O\left(h_\text{kernel}  w_\text{image}  h_\text{image}\right) час (де H- це висота і W- це ширина, див. Нотація Ландау), на відміну від O\left(w_\text{kernel} h_\text{kernel} w_\text{image} h_\text{image}\right) для нерозділених обчислень.

Застосування розмивання Гауса призводить до розмивання на зображення і має ті ж наслідки, що застосування єдиного розмивання Гауса, радіус якого рівний квадратному кореню з суми квадратів радіусу розмиття, що застосовується. Наприклад, застосовуючи послідовного розмивання Гауса з радіусом 6 і 8 дає ті ж результати, як застосування єдиного розмивання радіусом 10, оскільки \sqrt{6^2 + 8^2} = 10. Згідно з цим відношенням, час обробки не може бути зменшений шляхом імітації розмивання Гауса з послідовними процесом.

Приклад матриці Гауса[ред.ред. код]

Це приклад матриці ваги пікселя. В центральний елемент ([4, 4]) має найбільше значення. Для елементів відстань яких до центру зростає зниження значення відбувається симетрично.

0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117
0.00038771 0.01330373 0.11098164 0.22508352 0.11098164 0.01330373 0.00038771
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067

Центральний елемент 0.22508352 є у 1177 разів більший за 0,00019117 який знаходиться майже за межами 3σ.

Реалізація[ред.ред. код]

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

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

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

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. Shapiro, L. G. & Stockman, G. C: «Computer Vision», page 137, 150. Prentence Hall, 2001
  2. Mark S. Nixon and Alberto S. Aguado. Feature Extraction and Image Processing. Academic Press, 2008, p. 88.
  3. Еріка Рейнхарда. Зображення з високим динамічним діапазоном: збір, відображення та Image-Based Lighting. Morgan Kaufmann, 2006, с. 233–234.

Посилання[ред.ред. код]