Konvoluce
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 v Image Processing (zpracovávání obrazu) je funkce
většinou zkoumaný obrázek a funkce
nějaký filtr.
Obsah |
Vlastnosti konvoluce [editovat]
Komutativní [editovat]
Asociativní [editovat]
Distributivní [editovat]
Existence jednotky [editovat]
kde δ je tzv. Diracova delta funkce:
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:

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).







![\mathcal{F}(f * g) = \left[\mathcal{F} (f)\right] \cdot \left[\mathcal{F} (g)\right] = F \cdot G](http://upload.wikimedia.org/math/8/2/f/82f8cf7144eb4e36766b8573875ee94a.png)
![\mathcal{F}\left[f(x)\right]\equiv F(k) \equiv\int^\infty_{-\infty}f(x)\exp(-2 \pi i k x)dx](http://upload.wikimedia.org/math/6/3/5/635ea52943a10c0a8cf43994906c9aca.png)



![H(k)=\int^\infty_{-\infty}h(z)\exp(-2 \pi i k z)dz= \int^\infty_{-\infty}\left[\int^\infty_{-\infty}f(x) g(z- x)dx\right]\exp(-2 \pi i k z)dz=](http://upload.wikimedia.org/math/f/7/a/f7a5f7bcc4a3e8c845390e7f8544e74d.png)
![=\int^\infty_{-\infty}f(x)\left[\int^\infty_{-\infty} g(z- x)\exp(-2 \pi i k z) dz \right]dx=](http://upload.wikimedia.org/math/d/1/d/d1d07c735eb0b5db3e76b21e8957d233.png)
![=\int^\infty_{-\infty}f(x)\left[\int^\infty_{-\infty}g(y)\exp(-2 \pi i k (y+x))dy \right]dx=](http://upload.wikimedia.org/math/1/d/8/1d8542eeb69b3c17e91f399cd31cd4bd.png)

