Filtrace obrazu

Definice lineární filtrace

Lineární filtrace je lineární ve smyslu platnosti principu superpozice nad vstupy a výstupy filtru: f(x₁ + x₂) = f(x₁) + f(x₂)

Tento princip platí pro všechny pixely obrazu.

Jednoduchý a silný nástroj pro zpracování obrazu

Frekvenční charakteristika filtrů je problematická

Implementace je možná přímo nebo prostřednictvím FFT

Může sloužit ke zvýraznění nižších/vyšších frekvencí či hran v jednom směru

Realizace

Typicky 2D FIR filtry (okénko 3 × 3, 5 × 5 nebo 7 × 7).

Ve 2D mají tyto filtry podobu konvolučních filtrů. Konvoluční jádra se postupně aplikují na celý obraz a mění hodnoty pixelu podle jeho sousedů. Velikosti těchto jader jsou typicky 3 × 3, 5 × 5 nebo 7 × 7). Protože jde o 2D signál, hodnota výsledného pixelu y je suma součinu okolních pixelů x s konvolučním jádrem k:
<m>y_{(i,j)} = \sum{ii \in I, jj \in J}{}{x_{(i + ii, j + jj)} k_{(ii, jj)}}/{2^K}</m>
kde I = J = {−1, 0, 1}.

Velmi často se filtry implementují pomocí celých čísel. Pointa spočívá v tom, že se koeficienty násobí takovou konstantou a zaokrouhlí se na celá čísla tak, aby vzniklá chyba byla malá. Vhodné je, aby ona konstanta byla zároveň mocninou dvou tak, aby dělení výsledku bylo ve formě „posunu celých čísel doprava“. f(x) = IFFT(FFT(x) · F)

Konvoluce

Convolution, Convolution matrix

Typické příklady použití filtrů (pomocí konvoluce)

Rozostření
1	1	1
1	1	1
1	1	1
Doostření
0	−1	0
−1	5	−1
0	−1	0
Detekce hran
0	1	0
1	−4	1
0	1	0

Výsledek se pak ještě musí normalizovat (podělit sumou matice)!

Je možné použít širokou škálu konvolučn9ch jader pro dosažení mnoha efektů.

Použití rychlé konvoluce (přes FFT)

Kvalitnější filtry se dají realizovat pomocou filtrace ve frekvenční oblasti. Je třeba zaručit lokalitu filtru, aby obraz neobsahoval artefakty. Postup:

Vypočítat FFT obrazu – získání frekvenční charakteristiky

Vytvoříme frekvenční spektrum přenosu filtru. Třeba dbát na správnou odezvu filtru, která není lokální – výsledný obraz by měl artefakty

Maskování požadovanou frekvenční charakteristikou

Násobíme spektrum obrázku se spektrem filtru po pixelech

Provede se IFFT frekvenční charakteristiky filtru, násobení vhodným oknem, provede se FFT a získá se upravená frekvenční charakteristika

Provede se inverzní diskrétní Fourierova transformace (IFFT) zpět na obraz

Nelineární filtrace obrazu

„Jak ohnout pevnou strukturu obrázku v prostoru? Jde to? Jak eliminovat zkreslení kamery?“

Jde o taovou filtraci, že neplatí princip superpozície u vstupu a výstupu filtru, teda neplatí podmienka f(x₁ + x₂) = f(x₁) + f(x₂).

Často jsou takovéto filtry složené z lineárních filtrů (např. detektory hran).

Příklady nelineárních filtrů

Detektory hran

Edge detection, Sobel operatorl, Prewitt operator, Robinson

Provádí lineární filtraci ve dvou směrech – horizontálním i vertikálním

Výsledek je potom velikost vektoru filtrování v obou směrech určená z obou gradientů:
<m>|G| = \sqrt

Je aplikace nelineární prostorové transformace na jeden obraz. Podle způsobu zadávání kontrolní struktury můžeme warping rozdělit na:

Síťový (Jednou z nevýhod síťového warpingu je, že některé intuitivní operace (změna polohy koutků úst) jsou obtížně realizovatelné.)

Úsečkový (vhodný pro lokální změny v obraze.)

Zkreslení zobrazovacích zařízení – Mapování druhého, příp. vyššího řádu se používá ke kompenzaci prostorového zkreslení způsobeného zobrazovacím zařízením.

Morphing

Morphing je převod jednoho obrazu na jiný, kdy nezadáváme pouze jeden obraz a jeho změnu, nýbrž obrazy dva. Algoritmus pak provádí sekvenci warpingů z interpolovaných řídících struktur a pomocí tzv. alfa míchání počítá výsledný obraz.