# 9. Zpracování rastrového obrazu (100%)
###### tags: `zpracovaniObrazu`, `PB130`, `PV131`
:::warning
* Bodové transformace
* Histogram, vyrovnání histogramu, analýza histogramu
* Lineární a nelineární filtry
* Detekce hran
* Fourierova transformace
* Vzorkovací teorém, převzorkování, geometrické transformace
* Vlnková transformace
* Houghova/Radonova transformace
:::
---
## Bodové transformace
:::success
Transformace hodnot pixelů **nezávisle** na jejich okolí beze změny velikosti obrazu
* **Homogenní**
* pozičně nezávislé
* Např.:
* úpravy jasu
* kontrastu
* barevného podání
* gama korekce
* globální prahování
* **Nehomogenní**
* pozičně závislé
* Např.:
* korekce nerovnoměrného osvětlení
* vinětace optické soustavy
* aplikace přechodových filtrů
**Převodní funkce** – u homogenních bodových transformací se nazývá převodní charakteristika
:::
### Homogénne bodové transformace
#### **Lineární bodové transformace**
:::success
Převodní funkce je lineární **$f(a) = k a + q$**
* negativ $f(a) = 255 – a$
* lineární zvýšení jasu $f(a) = a + 64$ nebo $255$
* Roztažení intenzit
* V praxi převodní funkce, která je aplikována na jednotlivé pixely, často závisí na hodnotách pixelů v obraze (tj. obsahu obrazu)
* Lineární roztažení
* Percentilové roztažení (někdy též autokontrast)
:::
**Lineární roztažení:**
>[color=#449750]
>* <span style="color: black"> $a_{low}$ se převede na $a_{min}$, $a_{high}$ se převede na $a_{max}$ a hodnoty mezi $a_{low}$ a $a_{high}$ se mapují lineárně
<span style="color: black"> $$f(a) = (a - a_{low}) {a_{max}-a_{min} \over a_{high}-a_{low}} + a_{min}$$
**Percentilové roztažení**:
* Daný percentil hodnot je mapován na $a_{min}$
* Daný percentil hodnot je mapován na $a_{max}$
* Ostatní hodnoty jsou mapovány lineárně
* Hodnoty $â_{low}$ a $â_{high}$ lze snadno získat analýzou kumulativního histogramu
> [color=#449750] <span style="color: black"> $$
f(a) =
\begin{cases}
a_{min}, & \text{pre $a < â_{low}$} \\[2ex]
(a -â_{low}) {a_{max}-a_{min} \over â_{high}-â_{low}} + a_{min} , & \text{pre $â_{low} \leq a \leq â_{high} $} \\[2ex]
a_{max}, & \text{pre $a > â_{high} $}
\end{cases}$$
#### **Nelineární bodové transformace**
:::success
* Převodní funkci NElze vyjádřit v **lineárním tvaru**,
* příklady: prahování, zaokrouhlování, absolutní hodnoty, mocninné funkce, logaritmy
* (Globální) **Prahování**
* převod šedotónového obrazu na binární
* **Kvantizace**
* **Snížení** dynamického rozsahu obrazu (třeba jen 5 odstínů šedi v obraze)
:::
**Nelineární převodní funkce**
**Gama korekce**
<span style="color: green"> **Kompenzace vlastností lidského oka. Lepší využití bitové hloubky**
>[color=#449750]
>* <span style="color: black"> Rozsah intenzit je mapován na interval $[0,1 ]$
>* <span style="color: black"> Je aplikována nelineární funkce mapující $0 → 0$ a $1 → 1$ např. pro umocnění $f (b) = b^n$
>* <span style="color: black"> Rozsah intenzit je mapován zpět na původní interval hodnot
![](https://i.imgur.com/2fJmuys.png)
---
## Histogram
>[color=#449750] <span style="color: green"> **Histogram kvantifikuje množství a frekvenci barev obsažených v obraze**
>* <span style="color: black"> tj. hodnota histogramu $H$ pro index $i$ odpovídá počtu pixelů v obraze, které mají intenzitu $i$.
>* <span style="color: black"> Šedotónní obraz má 1 histogram, barevný 3
:::success
**Histogram šedotónových obrazů**
* Rozložení četnosti hodnot v 2D obraze I
* Lze vnímat jako diskrétní funkci $h: {0, ..., K-1} → Ν_0$
* h(i) počet pixelů v obraze s hodnotou i
* pole nebo vektor
* Pro 8-mi bitové obrazy:
* Je triviální, inicializovat pole obsahují 256 prvků na 0. Pak se prochází všechny pixely a zvyšuje se počet nalezených hodnot v daném poli
* Obraz nelze zpětně rekonstruovat, ztrácí se informace o prostorovém uspořádání
:::
**Histogram pro reálné obrazy**
* Musí se zvolit rozsahy hodnot, které budou odpovídat jednotlivým prvkům histogramu
**Histogramy barevných obrazů**
* Počítá se jako hist. jasové složky nebo individuálních kanálů. Jasová složka je šedotónová varianta barevného obrazu (RGB)
**Kumulativní histogram**
* užitečný pro některé operace s obrazy (vyrovnání histogramu)
* počítání rekurzivně
* monotónní neklesající funkce, max hodnota = počet pixelů v obraze
> Při fotografování → technicky dobrý obraz využívá celou škálu intenzit.
### Vyrovnání histogramu
:::info
* získání podobného vzhledu obrazu
* převod obrazu tak, aby jeho histogram měl určitý tvar
* transformovat hodnoty pixelů tak, aby histogram odpovídal uniformnímu rozdělení četností
* tj. kumulativní histogram se co nejvíc blížil lineární funkci
:::
**Ekvalizace histogramu**
Je to vyrovnání, změna jasu. Cílem je najít mapovací funkci, která rozloží hodnoty histogramu rovnoměrně. Ideálně histogram obsahuje všechny hodnoty zastoupené stejnou četností $d = (n * m)/max$, kde $max$ je maximální intenzita pixelů v obraze s rozlišením $n \times m$. Lze provádět i lokálně (např. v astronomii).
**Ekvalizace v barevném prostoru**
Buď se provádí na každém barevném kanálu odděleně, nebo se obraz převede do jiného barevného prostoru, např. YIQ.
Použití: fotografie proti světlu nebo v šeru.
### Analýza histogramu
:::success
**Interpolace** – odhalí problémy vzniklé při snímání, artefakty vznikající úpravou obrazu
**Prahování (Thresholding)**
Jedna z metod binární segmentace
Rozdělení jasové složky na 2 části a nahrazení jedinou hodnotou:
$$g(m) =
\begin{cases}
1, & \text{pre $f(m) \geq T$} \\[2ex]
0, & \text{inak}
\end{cases}$$
kde $T$ je práh (nejčastěji je vhodné zvolit medián nebo 50 procent šedé). Prahováním se obraz $(f)$ převede do binární reprezentace $(g)$.
:::
## Lineární a nelineární filtry
**Šum** je nová informace, která byla k původní přidána pořizovacím zařízením nebo během transportu (aditivní vs. multiplikativní). Druh šumu se určuje podle frekvenční charakteristiky po Fourierově transformace. Bílý šum má frekvenční spektrum dokonale vyrovnané - matematická abstrakce
:::info
Typy:
* **Poissonův** (photon-shot noise)
* **Aditivní** - $g=f+n$, kde $f$ je originální funkce, $n$ šum
* **Impulsní** - př. sůl a pepř
:::
:::success
**Odstranění šumu (Filtrace)**
Za šum jsou považovány velké změny intenzit v sousedících pixelů. Potlačí se buď konvolucí (lineární) nebo lokální statiskitou okolí pixelu (nelineární).
:::
### Lineární filtry
> [color=#449750] <span style="color: black"> **Konvoluce**
>
> <span style="color: black">$$
(f * h)(x,y) = \sum_{i=-k}^k \sum_{j=-k}^k f(x-i,y-j)\cdot h(i,j)
$$
>* <span style="color: black">$h$ - konvoluční jádro (okno, které se posouvá po obraze)*
>* <span style="color: black"> Binární operátor realizující vážený součet hodnot v okolí daného pixelu.
>* <span style="color: black"> Váhy jsou dány konvolučním jádrem
>* <span style="color: black"> 2D diskrétní konvoluce
> * Konvoluční jádro a vstupní obraz jsou definovány
omezenou doméhou
>* <span style="color: black"> Sčítání probíhá přes všechny prvky konvolučního jádra
>* <span style="color: black"> Hodnota konvolučního jádra na pozici (0,0) se násobí hodnotou pixelu
>* <span style="color: black"> ! při konvoluci se překlápí jádro
>* <span style="color: black"> Okrajové podmínky, když jádro překrývá přes okraj obrazu
> * doplnění nulami, doplnění nejbližší hodnotou, zrcadlením, periodickým opakováním
>* <span style="color: black"> Využitím Fourierovy transformace lze snížit časovou náročnost výpočtu
::: success
* **Vlastnosti:**
* Komutativita – lze zaměnit vstupní obraz za jádro
* $(f*g)(i) = (g*f)(i)$
* Asociativita - lze zaměnit pořadí výpočtu v dané sekvenci
* umožní urychlení výpočtu pro separabilní jádra (separabilní
* lze jej vyjádřit pomocí konvoluce jiných jader)
* $( (f*g)*h )(i) = ( f*(g*h) )(i)$
* xy – separabilia (kernel separability)
* *g* je separabilní, pokud platí $g = g_{row} * g_{col}^T$
* Linearita – konvoluce je lineární operátor
* umožňuje násobení skalárem
* je distributivní vzhledem ke sčítání
* $( f*(g+h) )(i) = (f*g)(i) + (f*h)(i)$
* Neutrální prvek: Diracova (delta) funkce
* jednotkový impuls
* Posunutí
* o nějaký vektor
:::
:::info
**Konvoliční teorém**
*F - Fourierova transformace
f, g - obrázky*
* $F(f*g) = F(f)\cdot F(g)$
* $F(f\cdot g) = F(f)*F(g)$
:::
### Lineární filtry
:::success
* musí splňovat podmínky linearity:
$$
a\cdot \Theta(I) = \Theta(a \cdot I)\\
\Theta(I_1 + I_2) = \Theta(I_1) + \Theta(I_2)
$$
* $I_n$ obrazy, $a$ skalární hodnoty
* Pozičně nezávislé
* vrací stejný výsledek nezávisle na posunutí obrazu
* Pozičně závislé
* tuto vlastnost nemají (??)
:::
> [color=#7D2FAA] <span style="color: black"> **Príklady lineárných filtrov**
>* <span style="color: black"> **Box filtr** – průměr hodnot v rámci obdélníkového okolí (rozmazání)
>* <span style="color: black"> **Gaussův filtr** – váhy odpovídají normálnímu rozdělení
> * nejpoužívanější vyhlazovací filtr, aproximace Airyho disku
> * Vyhlazováním se ztrácejí detaily a dochází ke zjednodušování obsahu obrazu
>* <span style="color: black"> **rozdílové filtry** (difference filters)
> * obsahují kladné i záporné váhy
>* <span style="color: black"> **zvýrazňující lokální** rozdíly (důležité při detekci hran a zaostřování)
> * za použití konvoluce
> * detekce hran
$$H=
\begin{bmatrix}
0 & 1 & 0 \\
1 & -4 & 1 \\
0 & 1 & 0 \\
\end{bmatrix}
$$
> * doostření
$$H=
\begin{bmatrix}
0 & -1 & 0 \\
-1 & 5 & -1 \\
0 & -1 & 0 \\
\end{bmatrix}
$$
> * Výsledek se pak ještě musí normalizovat (podělit sumou matice)!
>* <span style="color: black"> **rozdíl dvou posunutých obrazů**
> * hodnoty 1 a -1 na pozicích vektorů posunutí
>* <span style="color: black"> **Derivace Gaussova filtru**
> * méně náchylná na šum než obyčejné diference
>* <span style="color: black"> **Laplacův filtr** – aproximace druhé derivace
>* <span style="color: black"> **Mexický klobouk** – Laplacián Gaussova filtru
**Vztah k lineárním bodovým transformacím**
Obecně lineární bodové transformace nejsou lineární filtry. Např. lineární zvýšení jasu lze realizovat přičtením konstanty b, což ale nesplňuje podmínky linearity
### Nelineární filtre
:::success
* Jde o taovou filtraci, že neplatí princip superpozície u vstupu a výstupu filtru, teda neplatí podmienka $f(x_1 + x_2) = f(x_1) + f(x_2)$.
* Často jsou takovéto filtry složené z lineárních filtrů (např. detektory hran).
* medián filtr, min, max
Lokální statistika okolí pixeliu
$X_{(1)} \leq X_{(2)} \leq ... \leq X_{(n)}$
* $X_{(i)}$ - $i$-te poradie štatistiky
* $X_{(n)}$ - maximum
* $X_{(1)}$ - minimum
:::
> [color=#7D2FAA] <span style="color: black"> **Medián filter**
>* <span style="color: black"> není konvolucí!
>* <span style="color: black"> Vhodné pro odstranění impulsního šumu, avšak narušuje tenké čáry
>* <span style="color: black"> Okolí nemusí být čtvercové.
>* <span style="color: black"> $$med(X_i)=
\begin{cases}
X{(k+1)}, & \text{ak $n=2k+1$} \\[2ex]
(X{(k)} + X{(k+1)})/2, & \text{ak $n=2k;k\in Z$}
\end{cases}
$$
>* <span style="color: black"> *Jinak:*
Pro všechny pixely $[i, j]$ v obrazu $A$
1. Načti body z intervalu $[i-k, j-k][i+k, j+k]$ do pole $M$ délky $l = (2k+1)^2$
2. Seřaď pole $M$
3. Výstupní obraz $B[i,j] = M[(l-1)/2]$
>* <span style="color: black"> $y(i) = med(x_{i-k},...,x_i,...,x_{i+k}$)
>
> <span style="color: black">**Max filter**
>* <span style="color: black"> $y(i)=x(n)$
>
> <span style="color: black">**Min filter**
>* <span style="color: black"> $y(i) = x(n)$
>
> <span style="color: black"> **Ďalšie príklady nelineárnych filtrov**
>* <span style="color: black"> **difúzní filtry**
> * intenzity jsou vnímány jako koncentrace
> * difúze vyrovnává koncentracce a zachovává hmotu
> * zachování homogenních regionů, zachování hran, zachování průměrné intenzity, poziční závislosti, potlačení šumu
>* <span style="color: black"> **gradient**
> * diferenciální operátor NABLA, vektorové pole vyjadřující směr a velikost největší změny skalárního pole
>* <span style="color: black"> **nelineární isotropní difúze**
> * lineární isotropní difúze (Gaussův filtr)
> * nelineární isotropní difúze (Perona-Malik)
>* <span style="color: black"> **nelineární anizotropní difúze**
> * zvýraznění hran, zvýraznění koherence
>* <span style="color: black"> **bilaterální filtr**
>* <span style="color: black"> **nelineární vyhlazovací filtr**
> * zachovává hrany
> * pozičně závislé průměrování
> * zvýhodnění blízkých a intenzitou podobných pixelů
---
## Detekce hran
:::success
Hrana (edge) v diskrétním obraze je výrazná změna intenzit sousedních pixelů, vysokofrekvenční informace. Je určena gradientem (vektor ukazující směr největšího přírůstku funkce):
$∇f(x,y) = ({∂f(x,y) \over ∂x}, {∂f(x,y)\over ∂y})$
velikost: $|∇f(x,y)| = \sqrt {({∂f(x,y) \over ∂x})^2 +( {{∂f(x,y)}\over {∂y}})^2}$
:::
### Založené na prvej derivácií
* spojitá = smernica dotyčnice
* diskrétna = pomocou konečných diferencií
>[color=#7D2FAA] <span style="color: black"> **Operátory založené na prvej derivácií:**
>* <span style="color: black"> **Robertsov operátor** (krížový)
> * Detekuje především hrany se sklonem 45°.
> * Možno rozdělit na 2 složky detekující hrany v na sebe kolmých směrech
> * Náchylnejší na šum
> * ![](https://i.imgur.com/NMNgHUT.png)
> * Aproximuje veľkosť gradientu (prvej derivácie):
> * $|\nabla f(m,n) = |f(m,n) - f(m+1, n+1)| + |f(m,n+1) - f(m+1,n)|$
>* <span style="color: black"> **Sobelov operátor**
> * romazání Gaussovým filtrem
> * centrální diference
> * ![](https://i.imgur.com/BEDRjL7.png)
> * Aproximuje veľkosť gradientu (prvej derivácie):
> * $|\nabla f(m,n) = \sqrt{(\bigtriangleup_x f_{y-smooth}(m,n))^2 + (\bigtriangleup_y f_{x-smooth}(m,n))^2}$
>* <span style="color: black"> **Canny hranový detektor**
> * optimální lin hranový detektor pro schodovou hranu s Gaussovým šumem.
> * nízké procento chyb
> * přesná lokalizace
> * jednoznačná odezva
hysterezní prahování – ponechání jen relevantních hran, 2 prahy
> * Požadavky:
. * Minimální počet chyb (musí být detekovány všechny hrany, nesmí být detekována místa, která hranami nejsou)
> * Přesnost (poloha hrany musí být určena co nejpřesněji)
> * Jednoznačnost (odezva na jednu hranu musí být jedna, nesmí docházet ke zdvojení)
> * Stručný postup:
> * Eliminace šumu (Gaussovým filtrem)
> * Určení gradientu (první derivace)
> * Nalezení lokálních maxim (thinning)
> * Eliminace nevýznamných hran (thresholding)
> * Neprodukuje spojité hrany
>* <span style="color: black"> **Prewitov operátor**
> * rozmazání box filtrem
> * aproximace gradientu pomocí centrální diference
>* <span style="color: black"> **Robinsonov operátor**
> * 8 natočených konvolučních jader
> * velikost gradientu = max odezva
> * směr = natočení jádra
### Založené na druhé derivaci
Hrany se nacházejí v nulových bodech (zero crossings) druhé derivace
* to jsou maxima první derivace.
>[color=#7D2FAA] <span style="color: black"> **Laplaceův operátor** ($Δ$)
>* <span style="color: black"> Aproximuje druhú deriváciu funkcie
> * $\nabla^2 f(m,n) = f_{xx}(m,n) + f_{yy}(m,n)$
$$\nabla^2 \approx {1 \over h^2} \begin{pmatrix}
0 & 1 & 0 \\
1 & -4 & 1 \\
0 & 1 & 0 \\
\end{pmatrix}
$$
>* <span style="color: black"> Výhody:
> * produkuje spojité hrany (presná lokalizácia)
> * uzavřené kontury
> * invariantní k otáčení o násobky 45°
> * orientačně nezávislý
>* <span style="color: black"> Nevýhody:
> * detekuje nejen maxima, ale i minima
> * citlivý na šum
> * nedetekuje orientaci hrany
>
> <span style="color: black"> **Laplacian of Gaussian (LoG)**
>* <span style="color: black"> 5x5 LoG:
![](https://i.imgur.com/j05kAYH.png)
>
>
> <span style="color: black"> **Difference of Gaussians (DoG)**
>* <span style="color: black"> Aproximujeme LoG:
> * $DoG = G_{\sigma 1} - G_{\sigma 2}$
> * $\sigma 1 < \sigma 2$
> * ideálny poomer: $\sigma 1 / \sigma 2 = 1.6$
>
>![](https://i.imgur.com/9pnqqrp.png)
## Fourierova transformace
Slouží k převodu obrazu (z prostorové domény, $I$) do duálního prostoru (frekvenční domény, $F$) a zpět. Frekvenčná doména je obecně složením nekonečně mnoha sinusových signálů s různou amplitudou, které jsou různě fázově posunuté.
:::success
* forward - 1D diskrétna Fourierova transformácia:
* $$\mathcal F (k) \equiv f \cdot \varphi_k = {1 \over \sqrt N} \sum_{m=0}^{N-1} f(m) e^{-{2 \pi i m k \over N}}$$
* inverse - 1D diskrétna Fourieroová transformácia:
* $$f(m) \equiv \mathcal F \cdot \overline \varphi_k = {1 \over \sqrt N} \sum_{m=0}^{N-1} \mathcal F(k) e^{{2 \pi i m k \over N}}$$
:::
:::success
Daná je 2D diskrétna funkcia $f$, $(M,N)$ vzoriek a dve bázy $(\varphi_k , k = \{0,...,M-1\})$ a $(\varphi_l , l = \{0,...,N-1\})$, definujeme:
* $k=0...M-1, n = 0...N-1$
* komplexní jednotka $i= \sqrt{(-1)}$
* Eulerova formula: $e^{±i2πux} = cos(2πux) ± i sin(2πux)$
* Majme bod o súradnici $u = Re(u) + i (Im) (u)$. Amplitudové spektrum funkcie $F(u)$ je $|F(u)| = \sqrt {Re^2(u) + Im2(u)}$, fázové spektrum $φ(u) = atan({Re(u)\over Im(u)})$.
* forward - 2D diskrétna Fourierova transformácia
* $$\mathcal F (k,l) \equiv {1 \over \sqrt {MN}} \sum_{m=0}^{M-1} \sum_{n=0}^{N-1} f (m,n) e^{2 \pi i ({mk \over M} + {nl \over N})}$$
* inverse - 2D diskrétna Fourierova transformácia
* $$\mathcal f (m,n) \equiv {1 \over \sqrt {MN}} \sum_{k=0}^{M-1} \sum_{l=0}^{N-1} \mathcal F (k,l) e^{2 \pi i ({mk \over M} + {nl \over N})}$$
:::
![](https://i.imgur.com/uNY28FF.png)
![](https://i.imgur.com/QCStETh.png)
### FFT (Fast Fourier Transform)
* Dôležité vlastnosti Fourierovej transformácie:
1. Roztažení (stretch) funkce v prostorové doméně odpovídá opakování funkce (repetition) ve frekvenční doméně: ![](https://i.imgur.com/3SpSJXW.png)
2. Posun (shift) v prostorové doméně ovlivňuje jenom fázu:
![](https://i.imgur.com/dZpDmXq.png)
![](https://i.imgur.com/vkKEozu.png)
Proveďme dělení dokud je možné, tj. dostaneme se k signálu délky jednoho bodu, který je stejný bod i ve frekvenční doméně:
![](https://i.imgur.com/051qO5Z.png)
---
## Vzorkovací teorém, převzorkování, geometrické transformace
### Vzorkování
*Comb function (||| - shah):*
![](https://i.imgur.com/qL8tsL8.png)
* Vzorkování je proces převodu spojité funkce na diskrétní.
![](https://i.imgur.com/HT3lZsE.png)
**Nyquist-Shannon theorem**
Spojitou funkci je možné úplně zrekonstruovat pouze v případě, že signál je frekvenčně omezený (bandlimited) a vzorkovací frekvence je dvakrát větší než maximální frekvence signálu.
Při nesplnění těchto vlastností vzniká alias.
![](https://i.imgur.com/BQu7MWT.png)
#### Rekonstrukce
Inverzní proces ke vzorkování, konvoluce s low-pass filterem. Zrekonstuuje originální spojitý signál z diskrétních vzorků.
**Rekonstrukční filtry:**
* box - nejbližší soused
* tent - lineární interpolace
* kubický B-spline - kubická polynomiální interpolace
* Gaussian
* sinc
* Lanczos - omezený sinc
Plocha pod filtrem musí být jednotková, tj. $∫ h(t) dt = 1$, kde $h$ je rekonstrukční filter.
### Převzorkování
Převzorkování je proces, na jehož vstupu je digitální signál zaznamenaný (navzorkovaný) určitou vzorkovací frekvencí a na výstupu je tentýž signál, ale s jinou vzorkovací frekvencí.
![](https://i.imgur.com/vHpnhhH.png)
### Geometrické transformace
:::success
Chceme transformovat vstupní obraz $A$ na výstupní $B$. Geometrická transformace obrazu složeného z bodů $[x,y]$ je funkce $T(u,v) = [x(u,v), y(u,v)]$.
* Dopředné mapování - procházíme pixely $A$, hledáme jejich umístění v obraze $B$ (oblast)
* Zpětné mapování - procházíme pixely $B$, hledáme odpovídající oblasti v $A$
:::
Separabilita:
* Transformace je separabilní, pokud ji lze zapsat ve tvaru $T(u,v) = F(u, G(v))$. $F$ a $G$ jsou funkce jedné proměnné.
* Př. Fourierova transformace.
#### Lineární
![](https://i.imgur.com/Lu1r38J.png)
#### Nelineární
* Warping
---
## Vlnková transformace
<span style="color: green"> **Integrální transformace, která umožňuje získat časově-frekvenční popis signálu.**
Uplatňuje se na:
* Detekci **nespojitosti signálu** a jeho derivácií
* Identifikácií okamžitých frekvencií
* Odstránenie **šumu**
* Extrakciu príznakov
* **Kompresií signálu**
:::success
**Výpočet**
$${\displaystyle {\begin{aligned}\left[\operatorname {W} _{\psi }\,f\right](a,b)&=\langle f,\psi _{a,b}\rangle \\&=\int _{-\infty }^{+\infty }\!f(t)\,\psi _{a,b}^{\ast }(t)\,\mathrm {d} t\\&=\int _{-\infty }^{+\infty }\!f(t)\,{\frac {1}{\sqrt {a}}}\psi ^{\ast }\left({{t-b} \over {a}}\right)\,\mathrm {d} t\\&=f*\psi _{a}^{\ast }(b)\\&={\frac {1}{2\pi }}\langle {\hat {f}},{\hat {\psi }}_{a,b}\rangle ,\end{aligned}}}$$
* $\psi$, je tzv. mateřská vlnka a $\psi_{a,b}$ jejím roztažením a posunutím vytvořené vlnky, které tvoří jádro transformace
* $a$ značí měřítko (roztažení, dilataci) vlnky,
* $b$ značí časový posun vlnky
* zobrazení $⟨⋅,⋅⟩:V×V→C{\displaystyle \langle \cdot ,\cdot \rangle \colon V\times V\rightarrow \mathbb {C} }$ značí skalární součin prostoru ${\displaystyle L^{2}(\mathbb {R} )}$,
* operátor ${\displaystyle *\,}$ označuje spojitou konvoluci
* symbol ${\displaystyle *\,}$ u ${\displaystyle \psi ^{\ast }}$ označuje komplexně sdruženou funkci k $\psi$ ,
* ${\displaystyle \psi _{a}(t)={\frac {1}{\sqrt {a}}}\psi \left({{-t} \over {a}}\right)}$ je spojitý filtr, který odpovídá vlnce $\psi$, pro dané měřítko $a$
* ${\displaystyle {\hat {f}}\,}$, resp. ${\displaystyle {\hat {\psi }}_{a,b}\,}$ značí Fourierovu transformaci ${\displaystyle f\,}$, resp. ${\displaystyle \psi _{a,b}\,}$,
* dále ${\displaystyle a\in \mathbb {R} ^{+},b\in \mathbb {R} \,}$
:::
<span style="color: green"> **Vlnkovou transformaci je možno chápat jako skalární součiny s bázemi ${\displaystyle \psi _{a,b}\,}$, jako integrální transformaci s jádrem ${\displaystyle \psi _{a,b}^{\ast }\,}$ nebo jako konvoluce s funkcemi ${\displaystyle \psi _{a}^{\ast }\,}$**
>Obecně vzato, vlnky jsou matematicky konstruovány, aby měly vhodné vlastnosti například pro zpracování signálů. Vlnková transformace je v podstatě konvoluce určité vlnky (nebo jejich skupiny) s analyzovaným signálem.
>
>Představme si například vlnku, která má frekvenci tónu střední C a krátké trvání odpovídající osminové notě. Provedeme-li v pravidelných intervalech konvoluci takovéto vlnky se signálem – nahrávkou písně – pak nám výsledky této konvoluce napoví, kdy byla nota „osminové střední C“ v nahrávce použita.
>
>Matematicky vzato, k vysoké korelaci vlnky se signálem (vysokému korelačnímu koeficientu) dojde v těch místech (intervalech), kde signál obsahuje informaci o podobné frekvenci, tedy tam, kde je námi zvolené vlnce nejpodobnější. Tento koncept je jádrem mnoha aplikací vlnkové transformace.
---
## Houghova/Radonova transformace
### Hughova transformace
* Slúži na **identifikáciu priamok**, alebo ľubovoľných tvarov v obraze.
* Pôvodná transformácia slúžila **len** na detekciu priamok.
* Dlouho byla nejužívanější technikou pro **detekci čar na silnici** pro autonomní a částečně autonomní vozidla (v súčastnosti už nie)
* Bežne pracuje nad čierno-bielymi obrázkami (bez šedej)
* Hughova transformácia **mapuje vybraný tvar na boody v parametrickom priestore**
> [color=#7D2FAA] **Príklad**: priamka v Houghovej transformácií je transformácia priamky v Carteskych súradniciach na bod v polarnych súradniciach pomocoou danej rovnice: $\rho = x cos(σ)+y sin(σ)=r$
> * $\rho$ je vzdialenosť od počiatku ku priamke
> * $σ$ je uhol normály s rešpektom ku x-ovej osi
![](https://i.imgur.com/hgYd9uC.png)
>
> **Klasické transformácie:**
>* priamka na bod
>* skupina priamok prechádzajúcich spoločným bodom sa transformuje na prepojenú množinu bodov (krivku).
>* Tri skupiny priamok prechádzajúcich tromi kolineárnymi bodmi sa transformujú na 3 krivky, ktoré sa pretínajú v jedinom bode zodpovedajúcom priamke v karteziánskych súradniciach prechádzajúcej cez tieto tri body.
### Radonova transformácia
* integrální transformaci, která spočívá v **integrálu funkce přes přímky**.
* **Inverzní** Radonova transformace se v teorii používá pro **rekonstrukci obrázků z počítačových tomografů**
* **Normálna** radónová transformácia na detekciu čiar sa používa **v CT skeneroch**.
* Integrujeme/projektujeme všetky hodnoty navštívené lúčom.
* Výsledok sa vloží do projekčnej roviny (detektor).
* Úzce spjata s Fourierovou transformací
* vzorce pre transformáciu v troch rozmeroch, v ktorých je integrál prevzatý cez roviny (integrácia cez čiary je známa ako röntgenová transformácia).
* Radónová transformácia je **široko aplikovateľná na tomografiu**, vytváranie obrazu z projekčných údajov spojených s prierezovými skenmi objektu.
* Bod sa v doméne parametrov premení na sínusoidu.
* Čiara v normálnej Radónovej transformácii tvorí vrchol v doméne parametrov.
Existujú viacere definície Radonovej transformáciem učili sme sa jednu s názvom "**slant staking**"
* $$R_I(a,b) = \int_{-\infty}^\infty \int_{-\infty}^\infty I(x,y) \delta (y - ax - b) dxdy$$
* $I(x,y)$ je vstupný obrázok, z domény obrázkov
* $x,y$ sú Kartézske súradnice (v obrazkovej doméne)
* $a$ sklon
* $b$ offset
* $R_I(a,b)$ je výstupný obrázor (v parametrovom priestore)
* $y - ax - b = 0$ je vzor ktorý analyzujeme
**Inverzná Radoonova transformacia** vie byť vykonaná viacerými spôsobmi:
* **Fourier Slice Theoorem**
* Postup:
1. Vykonajte všetky integrálne projekcie
2. Aplikujte 1D FT na každú jednotlivú projekciu
3. Zlúčte 1D Fourierove rezy do tvaru hviezdy, aby ste vytvorili 2D Fourierovu doménu
4. Vyhodnoťte 2D IFT, aby ste získali pôvodný signál
* **Filtered Backprojection**
* premietneme signál späť
* Viac uhlov => lepšia rekonštrukcia
* Výsledok je potrebné vyfiltrovať pomocou high-pass filteru
![](https://i.imgur.com/jclfLLz.png)
---
![](https://i.imgur.com/J43ylKP.png)