Konvoluce

Z Wikipedie, otevřené encyklopedie

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

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

f(x)*h(x) = \int_{-\infty}^{\infty} f(x- \alpha) h( \alpha) \, \mathrm{d} \alpha

Funkci h(α) se říká konvoluční jádro. Protože jinak celý výraz je vždy stejný, jsou operátory definovány právě jen konvolučním jádrem.

[editovat] Využití v počítačové grafice

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:

f(x,y)*h(x,y) = \sum_{i=-k}^k  \sum_{j=-k}^k  f(x-i,y-j) \cdot h(i,j)

Princip diskrétní dvourozměrné konvoluce
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 3x3 (bude překryto 9 pixelů) a všechny buňky mají koeficient 0,11 (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 5x5 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. (vizdetekce hran)