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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Приклади

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

Тотожне відображення
Виділення границь
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. Архів оригіналу за 4 жовтня 2017. Процитовано 20 червня 2017. (англ.) - інструкція про те як застосувати згортку до зображення в Gimp