Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
mgr-szz:in-gra:7-gra [2013/06/15 10:42]
csilla8852
mgr-szz:in-gra:7-gra [2020/04/12 16:56] (aktuální)
Řádek 1: Řádek 1:
 +===== Zadání =====
 +Zpracování rastrového obrazu. Histogram, ekvalizace podle histogramu. Prahování,​ redukce úrovní jasu (barev). Lineární a nelineární filtry. Detekce hran. Diskrétní Fourierova transformace při úpravách obrazu. Geometrické transformace obrazu, filtrování,​ převzorkování,​ vyhlazování. (PA010, PA171)
  
 +===== Rastrový obraz =====
 +Rastrový obraz je matice n x m pixelů (1 bit -> černobílý,​ monochromatický).
 +  * indexový mód - hodnota pixelu je ukazatel do tabulky - barevné palety (color palette), např. gray scale
 +  * true color, static gray - pixel obsahuje přímo hodnotu intenzity
 +  * direct color - pixel ukazuje do 3 palet (R, G, B)
 +
 +===== Histogram =====
 +Histogram kvantifikuje množství a frekvenci barev obsažených v obraze, tj. hodnota histogramu H pro index i odpovídá počtu pixelů v obraze, které mají intenzitu i. (Šedotónní obraz má 1 histogram, barevný 3)
 +Bílý bod je nejsvětlejší bod v histogramu, černý bod je nejtmavší.
 +Poznámka: Při fotografování -> technicky dobrý obraz využívá celou škálu intenzit.
 +
 +===== Změny histogramu =====
 +
 +Zvýšení/​snížení jasu, změny kontrastu - pomocí korekční křivky přímo na histogramu.
 +
 +==== 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 x 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.
 +
 +==== Prahování (Thresholding) ====
 +Jedna z metod binární segmentace\\
 +Rozdělení jasové složky na 2 části a nahrazení jedinou hodnotou:
 +{{:​mgr-szz:​in-gra:​threshold.png|}}
 +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).
 +Ohraničené prahování:​
 +  i_n = 
 +  i pro 0 <= i < D
 +  L pro D <= i < T
 +  H pro T <= i < U
 +  i pro U <= i <= max
 +
 +Dělení:
 +  * globální
 +  * lokální
 +  * dynamické/​adaptivní
 +
 +Jak najít vhodný práh automaticky?​
 +  * V bimodálním histogramu (2 lokální maxima):
 +    {{:​mgr-szz:​in-gra:​prah1.png|}}
 +  * V unimodálním histogramu:
 +    {{:​mgr-szz:​in-gra:​prah2.png|}}
 +
 +==== Gama korekce ====
 +CRT monitory -> nelineární časová odezva, ovlivňuje dithering
 +i' = i^(1/​gamma),​ gamma = 2.5 +- 0.3 (závislá na typu obrazovky)
 +
 +===== 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
 +Typy:
 +  * Poissonův (photon-shot noise)
 +  * Aditivní - g=f+n, kde f je originální funkce, n šum
 +  * Impulsní - př. sůl a pepř
 +{{:​mgr-szz:​in-gra:​saltandpeppernoise.jpg|}}
 +
 +
 +==== 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í).
 +
 +=== Nelineární filtry ===
 +
 +Lokální statistika okolí pixelu
 +{{:​mgr-szz:​in-gra:​lin_filter.png|}}
 +
 +== Medián filter ==
 +Není konvolucí! Vhodné pro odstranění impulsního šumu, avšak narušuje tenké čáry. Okolí nemusí být čtvercové.
 +{{:​mgr-szz:​in-gra:​med.png|}}
 +y(i) = med(x_i-k, ... x_i, ... x_i+k)
 +
 +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]
 +
 +== Max filter ==
 +y(i) = x(n)
 +
 +== Min filter ==
 +y(i) = x(1)
 +
 +== Alpha trimmed mean filter ==
 +{{:​mgr-szz:​in-gra:​alphafilter.png|}}
 +
 +
 +=== Lineární filtry ===
 +
 +== Konvoluce ==
 +{{:​mgr-szz:​in-gra:​convolution0.png|}}
 +{{:​mgr-szz:​in-gra:​convolution.png|}}
 +g, h - konvoluční jádro (okno, které se posouvá po obraze)
 +
 +Vlastnosti konvoluce:
 +(f*g)(i) = (g*f)(i)
 +( (f*g)*h )(i) = ( f*(g*h) )(i)
 +(kernel separability) g je separabilní,​ pokud platí g = g_row * g_col^T ​
 +Konvoluce s 2D jádrem O(n²), konvoluce s 2 1D jádrami O(n).
 +
 +Konvoluční teorém:
 +F(f*g) = F(f).F(g)
 +F(f.g) = F(f)*F(g)
 +F - Fourierova transformace
 +f, g - obrázky
 +
 +== Obyčejné průměrování ==
 +{{:​mgr-szz:​in-gra:​ones.png|}}
 +
 +Filtrace pomocí obyčejného průměrování ve Fourierově doméně odpovídá násobení funkcí, která odstraní frekvence vyšší než určitá hodnota (odřezání vysokých frekvencí - low-pass filtering, potlačení s váhou).
 +  * Ideal Low-Pass Filter: H(u,v) = 
 +1 pro √(u²+v²) ≤ D0,
 +0 pro √(u²+v²) > D0,
 +jedná se o válec s poloměrem D0 a výškou 1.
 +
 +Ostření obrazu ve frekvennční doméně -> high-pass filtering
 +  * Ideal High Pass Filter: H(u,v) = 
 +0 pro √(u²+v²) <  D0,
 +1 pro √(u²+v²) >= D0
 +
 +== Gaussův filter ==
 +{{:​mgr-szz:​in-gra:​gauss.png|}}
 +
 +===== Detekce hran =====
 +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)/​∂x,​ ∂f(x,​y)/​∂y),​ velikost: |∇f(x,y)| = √(∂f(x,​y)/​∂x)² + (∂f(x,​y)/​∂y)²
 +
 +
 +==== Založené na první derivaci ====
 +
 +=== Robertsův operátor ===
 +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.
 +{{:​mgr-szz:​in-gra:​roberts.png|}}
 +
 +Aproximuje velikost gradientu (první derivace):
 +{{:​mgr-szz:​in-gra:​roberts2.png|}}
 +
 +=== Sobelův operátor ===
 +Aproximuje velikost gradientu (první derivace):
 +{{:​mgr-szz:​in-gra:​sobel2.png|}}
 +{{:​mgr-szz:​in-gra:​sobel.png|}}
 +
 +=== Canny hranový detektor ===
 +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)
 +
 +{{:​mgr-szz:​in-gra:​canny.png|}}
 +
 +Neprodukuje spojité hrany.
 +
 +=== Rothwell hranový detektor ===
 +Stejný jako Canny, jenom krok thinning je modifikován,​ aby hrany byly spojité. Topologický přístup.
 +
 +
 +==== Založené na druhé derivaci ====
 +
 +Hrany se nacházejí v nulových bodech (zero crossings) druhé derivace, to jsou maxima první d
 +erivace.
 +
 +=== Laplaceův operátor (Δ) ===
 +Aproximuje druhou derivaci funkce. ​
 +{{:​mgr-szz:​in-gra:​laplace.png|}}
 +
 +Nevýhody:
 +  * detekuje nejen maxima, ale i minima
 +  * citlivý na šum
 +  * nedetekuje orientaci hrany
 +Výhody:
 +  * produkuje spojité hrany
 +  * invariantní k otáčení o násobky 45°
 +  * orientačně nezávislý
 +
 +== Laplacian of Gaussian (LoG) ==
 +5 x 5 LoG:
 +{{:​mgr-szz:​in-gra:​log_mask.png|}}
 +
 +"​Mexican hat":
 +{{:​mgr-szz:​in-gra:​log_mexican_hut.png|}}
 +
 +== Difference of Gaussians (DoG) ==
 +Aproximuje LoG. 
 +{{:​mgr-szz:​in-gra:​dog.png|}}
 +Ideální poměr: σ1/σ2 = 1.6
 +
 +
 +==== (Template based edge detection) ====
 +
 +=== Lineární ===
 +{{:​mgr-szz:​in-gra:​template_lin.png|}}
 +
 +=== Nelineární ===
 +== Goodness-Of-Fit Test Based Edge De
 +tection ==
 +{{:​mgr-szz:​in-gra:​template_nelin.png|}}
 +
 +===== Diskrétní transformace =====
 +
 +==== 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é.
 +
 +{{:​mgr-szz:​in-gra:​ft1.png|}}
 +{{:​mgr-szz:​in-gra:​ft2d.png|}}
 +k=0...N-1, n=0...N-1
 +komplexní jednotka: i = √(-1)
 +Eulerova formule: e^(±i2πux) = cos(2πux) ± i sin(2πux)
 +Mějme bod o souřadnici u = Re(u) + i Im(u). Amplitudové spektrum funkce F(u) je |F(u)| = √(Re²(u) + Im²(u)), fázové spektrum φ(u) = atan(Re(u)/​Im(u)).
 +{{:​mgr-szz:​in-gra:​ft.png|}}
 +
 +dualita: F ⇔ I
 +{{:​mgr-szz:​in-gra:​ft2.png|}}
 +
 +
 +==== FFT (Fast Fourier Transform) ====
 +
 +Důležité vlastnosti Fourierova transformace: ​
 +1. Roztažení (stretch) funkce v prostorové doméně odpovídá opakování funkce (repetition) ve frekvenční doméně:
 +{{:​mgr-szz:​in-gra:​ft3.png|}}
 +2. Posun (shift) v prostorové doméně ovlivňuje jenom fázu:
 +{{:​mgr-szz:​in-gra:​ft6.png|}}
 +
 +{{:​mgr-szz:​in-gra:​ft4.png|}}
 +{{:​mgr-szz:​in-gra:​ft5.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ě:
 +{{:​mgr-szz:​in-gra:​fft.png|}}
 +
 +====== Geometrické transformace obrazu ======
 +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.
 +
 +===== Vzorkování (Sampling) =====
 +
 +Comb function (||| - shah):
 +{{:​mgr-szz:​in-gra:​shah.png|}}
 +{{:​mgr-szz:​in-gra:​shah2.png|}}
 +
 +Vzorkování je proces převodu spojité funkce na diskrétní.
 +{{:​mgr-szz:​in-gra:​sampling.png|}}
 +
 +{{:​mgr-szz:​in-gra:​sampling2.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.
 +{{:​mgr-szz:​in-gra:​sampling3.png|}}
 +
 +===== Rekonstrukce (Reconstruction) =====
 +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í (Resampling) =====
 +{{:​mgr-szz:​in-gra:​reconstruction.png|}}
 +
 +===== Lineární geometrické transformace =====
 +
 +== Posunutí (Translation) ==
 +{{:​mgr-szz:​in-gra:​translation.png|}}
 +== Otáčení (Rotation) ==
 +{{:​mgr-szz:​in-gra:​rotation.png|}} (clockwise)
 +== Změna měřítka (Scale) ==
 +{{:​mgr-szz:​in-gra:​scaling.png|}}
 +== Zkosení (Shear) ==
 +{{:​mgr-szz:​in-gra:​shear.png|}}
 +
 +===== Nelineární geometrické transformace =====
 +
 +== Warping == 
 +viz otázku č. 13
 +
 +====== Zdroj ======
 +Žára, Beneš, Sochor, Felkel. Moderní počítačová grafika. Computer Press, Brno, 2004. ISBN: 80-251-0454-0
 +David Svoboda : PA171 - Digital image filtering, slajdy. 2012. Fakulta informatiky,​ Masarykova Univerzita. Brno.
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0