Konvoluce

Z Wikipedie, otevřené encyklopedie
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.

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

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 | editovat zdroj]

Komutativní[editovat | editovat zdroj]

Asociativní[editovat | editovat zdroj]

Distributivní[editovat | editovat zdroj]

Existence jednotky[editovat | editovat zdroj]

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 | editovat zdroj]

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

Konvoluční teorém[editovat | editovat zdroj]

kde značí Fourierovu transformaci

Dk.:

substituce: a tedy

Diskrétní konvoluce[editovat | editovat zdroj]

Příklad[editovat | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]