Konvoluce je matematický operátor zpracovávající dvě funkce.

Konvoluce dvou signálů: obdélníkového pulsu a impulsní charakteristika RC článku. Výsledkem konvoluce je odezva RC článku na obdélníkový puls.

Spojitá konvoluce (značí se hvězdičkou) jednorozměrných funkcí a je definována vztahem:

Funkci se říká konvoluční jádro. Hodnota konvoluce funkce s jádrem v bodě je integrál ze součinu funkce s otočenou funkcí konvolučního jádra (integrační proměnná má v argumentu konvolučního jádra záporné znaménko) posunutou do bodu .

Pokud jde o konvoluci při zpracovávání obrazu, je funkce většinou zkoumaný obrázek a funkce nějaký filtr.

Vlastnosti konvoluce

editovat
 
 
 

Existence jednotky

editovat
 

kde δ je tzv. Diracova delta funkce (distribuce):

 

a  . Integrál Delta funkce je roven 1:

 

Jde tedy o puls trvající nekonečně krátkou dobu.

Asociativita při násobení skalárem

editovat
 

pro všechna reálná (nebo komplexní) čísla  .

Konvoluční teorém

editovat
 

kde   značí Fourierovu transformaci  

 

Dk.:

 
 
 
 
 

substituce:   a tedy  

 
 

Diskrétní konvoluce

editovat
 
 

Příklad

editovat

V případě dvou konečných řad se samozřejmě nesčítá od −∞ do +∞, ale pouze přes existující prvky. (Případně si lze na pozici neexistujících prvků řady představit nuly.) Výsledná řada je o jeden prvek kratší než je součet délek konvoluovaných řad.

Konvoluce dvou řad:

(a, b, c, d) * (e, f, g) =
= (a*e) (a*f) (a*g)
        (b*e) (b*f) (b*g)
              (c*e) (c*f) (c*g) 
                    (d*e) (d*f) (d*g)
  -----------------------------------
  následuje sečtení pod sebou

Výsledek je stejný, jakoby se jednalo o součin dvou polynomů. (Koeficienty násobených polynomů by představovaly dvě konvoluované řady, koeficienty součinu polynomů by odpovídaly výsledku konvoluce.)

Konkrétní čísla:

(1, 2, -2, -1) * (1, -1, 2) =
= 1 -1  2
     2 -2  4
       -2  2 -4
          -1  1 -2
 ------------------
 (1, 1,-2, 5,-3,-2)

Jinou možností výpočtu je použití maticového násobení.

 

Konkrétní čísla:

 

Využití v počítačové grafice

editovat

Konvoluce se často používá při algoritmech zpracování dvourozměrného diskrétního obrazu v počítačové grafice. Vzorec diskrétní konvoluce má potom tvar:

 

 
Princip diskrétní dvourozměrné konvoluce

V případě diskrétní konvoluce lze jádro chápat jako tabulku (konvoluční maska), kterou položíme na příslušné místo obrazu. Každý pixel překrytý tabulkou vynásobíme koeficientem v příslušné buňce a provedeme součet všech těchto hodnot. Tím dostaneme jeden nový pixel.

Například mějme konvoluční masku o rozměru 3×3 (bude překryto 9 pixelů) a všechny buňky mají koeficient 0,111 (1/9). Nový pixel, který vypočteme po aplikaci na jedno místo v původním obraze, tedy bude průměrem z devíti okolních pixelů. Neudělali jsme totiž nic jiného, než že jsme sečetli hodnoty 9 pixelů a vydělili 9. Pokud aplikujeme konvoluci na celý obraz, pak dostaneme rozostřený obraz. Pokud použijeme větší konvoluční masku 5×5 s koeficienty 1/25, pak bude obraz rozostřen více.

Koeficienty uvnitř konvoluční masky udávají vliv hodnoty pixelu pod nimi. Lze tak nadefinovat velké množství operací, např. derivace obrazu (u diskrétního obrazu mluvíme o tzv. odhadu derivace), tedy zvýraznění hran (viz detekce hran).

Externí odkazy

editovat
  •   Obrázky, zvuky či videa k tématu konvoluce na Wikimedia Commons