8.2. Convolution Matrix (Konvolučná matica)

8.2.1. Prehľad

Tak toto je doména matematikov. Väčšina filtrov využíva konvolučnú maticu. Ak vás chytí tvorivosť, za pomoci filtra Convolution Matrix (Konvolučná matica) môžete vytvoriť svoj vlastný filter.

Čo je konvolučná matica? Hrubý náčrt toho, o čo ide, je možné získať aj bez nutnosti použiť zložité matematické nástroje (ktoré aj tak pozná len málokto). Konvolúcia predstavuje úpravu jednej matice druhou, ktorá sa nazýva kernel.

Filter Convolution Matrix (Konvolučná matica) využíva prvú maticu, ktorou je obrázok. Obrázok je dvojdimenzionálna sústava pixlov popísaná súradnicami. Používaný kernel je závislý od požadovaného výsledného efektu.

GIMP používa maticu 5x5 alebo 3x3. My budeme brať do úvahy matice 3x3. Používajú sa najčastejšie a vytvoríte pomocou nich všetky požadované efekty. Ak sú všetky hodnoty hraníc kernelu nastavené na nulu, systém ich považuje za 3x3 maticu.

Filter preskúma postupne každý pixel obrázka. Pre každý jeden pixel, ktorý budeme nazývať iniciálny pixel, platí, že filter násobí hodnotu tohto pixla a hodnoty 8 susediacich pixlov hodnotami zodpovedajúceho kernela. Iniciálny pixel je nastavený na túto výslednú hodnotu.

Jednoduchý príklad:

Ľavá strana zodpovedá matici obrázka: každý pixel je označený jeho hodnotou. Iniciálny pixel je ohraničený červenou. Oblasť kernelu, ktorá bude ovplyvnená, má zelené ohraničenie. V strede sa nachádza kernel, napravo sa nachádza výsledok konvolúcie.

Čo sa stalo: filter postupne číta, zľava doprava a zvrchu dole, všetky pixly nachádzajúce sa v oblasti účinku kernelu. Násobí hodnotu každého z nich zodpovedajúcou hodnotou kernelu a vypočíta výsledok. Iniciálny pixel bude 42: (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42. (filter sa neaplikuje na obrázok ale na jeho kópiu). Grafický výsledok: iniciálny pixel posunul pixel smerom nadol.

8.2.2. Aktivácia filtra

Filter môžete aktivovať z hlavnej ponuky výberom položiek Filters (Filtre)Generic (Všeobecné)Convolution Matrix (Konvolučná matica).

8.2.3. Voľby

Obrázok 17.150. Voľby filtra Convolution matrix (Konvolučná matica)

Voľby filtra Convolution matrix (Konvolučná matica)

Matrix (Matica)

Toto je kernelova matica 5x5: hodnoty zadávate priamo do okienok.

Divisor (Deliteľ)

Výsledok predchádzajúcich výpočtov bude vydelený týmto deliteľom. Hodnotu 1 asi nepoužijete, výsledok by sa nezmenil. Hodnoty 9 alebo 25 podľa veľkosti matice, dávajú priemer hodnôt pixlov.

Offset (Posun)

Túto hodnotu pridáte k výsledku delenia. Je to užitočné, ak by mal byť výsledok negatívny. Tento posun môže byť negatívny.

Border (Okraj)

Keď iniciálny pixel leží na okraji, časť kernelu bude mimo obrázka. Musíte sa rozhodnúť, čo má filter vykonať:

Zľava: zdrojový obrázok, Extend (Rozšíriť) okraj, Wrap (Zalomiť) okraj, Crop (Orezanie) okraja

Extend (Rozšíriť)

Táto časť kernelu sa do úvahy neberie.

Wrap (Zalamovať)

Táto časť kernelu bude skúmať pixly protiľahlého okraja. Takto sa stratené pixly z jednej strany znovu objavia na opačnej.

Crop (Orezanie)

Pixly ležiace na okraji nebudú upravené, orežú sa.

Channels (Kanály)

Na tomto mieste môžete nastaviť jeden alebo niekoľko kanálov s ktorými filter bude pracovať.

Normalise (Normalizovať)

Ak je táto voľba označená, Deliteľ zoberie výslednú hodnotu konvolúcie. Ak sa výsledok rovná nule (nulou nie je možné deliť), použije sa posun s hodnotou 128. Ak je výsledok negatívny (ani negatívne hodnoty farby nie sú možné), použije sa posun s hodnotou 255 (obrátený výsledok).

Alpha-weighting (Vážená alfa)

Ak je táto voľba neoznačená, filter nebude brať do úvahy priesvitnosť. Toto môže pri rozostrení spôsobovať tvorbu artefaktov.

8.2.4. Príklady

Dizajn kernelu je založený na matematike vysokej úrovne. Na internete môžete nájsť kernely pripravené na použitie. Uvedieme pár príkladov:

Obrázok 17.151. Sharpen (Doostriť)

Sharpen (Doostriť)
Sharpen (Doostriť)

Obrázok 17.152. Blur (Rozostrenie)

Blur (Rozostrenie)
Blur (Rozostrenie)

Obrázok 17.153. Edge enhance (Vylepšenie hrán)

Edge enhance (Vylepšenie hrán)
Edge enhance (Vylepšenie hrán)

Obrázok 17.154. Edge detect (Detekcia hrán)

Edge detect (Detekcia hrán)
Edge detect (Detekcia hrán)

Obrázok 17.155. Emboss (Reliéf)

Emboss (Reliéf)
Emboss (Reliéf)