Згортка (обробка зображень)

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

ПрикладиРедагувати

В залежності від елементів матриці згортка може викликати різні ефекти.

Тотожне відображення    
Виділення границь    
   
   
Sharpen    
Розмиття квадратом
   
Гаусове розмиття
   
5×5 Нерізке розмиття
   

Це лише декілька прикладів ефектів, досягнутих за допомогою використання згортки.

Обчислення згорткиРедагувати

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

Наприклад, якщо ми маємо дві 3х3 матриці, перша - ядро, друга - шматок зображення, згортка - це процес транспонування рядків і стовпчиків ядра з наступним множенням і додаванням. Елемент з координатами [2, 2] (тобто, центральний елемент) отриманого зображення буде зваженою комбінацією всіх елементів матриці зображення, з вагами взятими з ядра:

 

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

for each image row in input image:
   for each pixel in image row:

      set accumulator to zero

      for each kernel row in kernel:
         for each element in kernel row:

            if element position  corresponding* to pixel position then
               multiply element value  corresponding* to pixel value
               add result to accumulator
            endif

      set output image pixel to accumulator

Див. ТакожРедагувати

ЛітератураРедагувати

ПосиланняРедагувати

  • 8.2. Convolution Matrix. Архів оригіналу за 2017-10-04. Процитовано 2017-06-20.  (англ.) - інструкція про те як застосувати згортку до зображення в Gimp