Try   HackMD

9. Zpracování rastrového obrazu (100%)

tags: zpracovaniObrazu, PB130, PV131
  • 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

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

Převodní funkce je lineární

f(a)=ka+q

  • negativ
    f(a)=255a
  • 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í:

  • alow
    se převede na
    amin
    ,
    ahigh
    se převede na
    amax
    a hodnoty mezi
    alow
    a
    ahigh
    se mapují lineárně
    f(a)=(aalow)amaxaminahighalow+amin

Percentilové roztažení:

  • Daný percentil hodnot je mapován na
    amin
  • Daný percentil hodnot je mapován na
    amax
  • Ostatní hodnoty jsou mapovány lineárně
  • Hodnoty
    âlow
    a
    âhigh
    lze snadno získat analýzou kumulativního histogramu

f(a)={amin,pre a<âlow(aâlow)amaxaminâhighâlow+amin,pre âlowaâhighamax,pre a>âhigh

Nelineární bodové transformace

  • 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
Kompenzace vlastností lidského oka. Lepší využití bitové hloubky

  • Rozsah intenzit je mapován na interval
    [0,1]
  • Je aplikována nelineární funkce mapující
    00
    a
    11
    např. pro umocnění
    f(b)=bn
  • Rozsah intenzit je mapován zpět na původní interval hodnot

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

Histogram šedotónových obrazů

  • Rozložení četnosti hodnot v 2D obraze I
  • Lze vnímat jako diskrétní funkci
    h:0,...,K1Ν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

  • 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=(nm)/max, kde
max
je maximální intenzita pixelů v obraze s rozlišením
n×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

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)={1,pre f(m)T0,inak

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

Typy:

  • Poissonův (photon-shot noise)
  • Aditivní -
    g=f+n
    , kde
    f
    je originální funkce,
    n
    šum
  • Impulsní - př. sůl a pepř

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

Konvoluce

(fh)(x,y)=i=kkj=kkf(xi,yj)h(i,j)

  • h
    - konvoluční jádro (okno, které se posouvá po obraze)*
  • Binární operátor realizující vážený součet hodnot v okolí daného pixelu.
  • Váhy jsou dány konvolučním jádrem
  • 2D diskrétní konvoluce
    • Konvoluční jádro a vstupní obraz jsou definovány
      omezenou doméhou
  • Sčítání probíhá přes všechny prvky konvolučního jádra
  • Hodnota konvolučního jádra na pozici (0,0) se násobí hodnotou pixelu
  • ! při konvoluci se překlápí jádro
  • 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
  • Využitím Fourierovy transformace lze snížit časovou náročnost výpočtu
  • Vlastnosti:
    • Komutativita – lze zaměnit vstupní obraz za jádro
      • (fg)(i)=(gf)(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)
      • ((fg)h)(i)=(f(gh))(i)
    • xy – separabilia (kernel separability)
      • g je separabilní, pokud platí
        g=growgcolT
    • Linearita – konvoluce je lineární operátor
      • umožňuje násobení skalárem
      • je distributivní vzhledem ke sčítání
      • (f(g+h))(i)=(fg)(i)+(fh)(i)
    • Neutrální prvek: Diracova (delta) funkce
      • jednotkový impuls
    • Posunutí
      • o nějaký vektor

Konvoliční teorém
F - Fourierova transformace
f, g - obrázky

  • F(fg)=F(f)F(g)
  • F(fg)=F(f)F(g)

Lineární filtry

  • musí splňovat podmínky linearity:
    aΘ(I)=Θ(aI)Θ(I1+I2)=Θ(I1)+Θ(I2)
    • In
      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í (??)

Príklady lineárných filtrov

  • Box filtr – průměr hodnot v rámci obdélníkového okolí (rozmazání)
  • 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
  • rozdílové filtry (difference filters)
    • obsahují kladné i záporné váhy
  • 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=[010141010]
      • doostření
        H=[010151010]
    • Výsledek se pak ještě musí normalizovat (podělit sumou matice)!
  • rozdíl dvou posunutých obrazů
    • hodnoty 1 a -1 na pozicích vektorů posunutí
  • Derivace Gaussova filtru
    • méně náchylná na šum než obyčejné diference
  • Laplacův filtr – aproximace druhé derivace
  • 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

  • Jde o taovou filtraci, že neplatí princip superpozície u vstupu a výstupu filtru, teda neplatí podmienka
    f(x1+x2)=f(x1)+f(x2)
    .
  • Č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)X(2)...X(n)

  • X(i)
    -
    i
    -te poradie štatistiky
  • X(n)
    - maximum
  • X(1)
    - minimum

Medián filter

  • není konvolucí!
  • Vhodné pro odstranění impulsního šumu, avšak narušuje tenké čáry
  • Okolí nemusí být čtvercové.
  • med(Xi)={X(k+1),ak n=2k+1(X(k)+X(k+1))/2,ak n=2k;kZ
  • Jinak:
    Pro všechny pixely
    [i,j]
    v obrazu
    A

    1. Načti body z intervalu
    [ik,jk][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[(l1)/2]
  • y(i)=med(xik,...,xi,...,xi+k
    )

Max filter

  • y(i)=x(n)

Min filter

  • y(i)=x(n)

Ďalšie príklady nelineárnych filtrov

  • 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
  • gradient
    • diferenciální operátor NABLA, vektorové pole vyjadřující směr a velikost největší změny skalárního pole
  • nelineární isotropní difúze
    • lineární isotropní difúze (Gaussův filtr)
    • nelineární isotropní difúze (Perona-Malik)
  • nelineární anizotropní difúze
    • zvýraznění hran, zvýraznění koherence
  • bilaterální filtr
  • 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

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)2+(f(x,y)y)2

Založené na prvej derivácií

  • spojitá = smernica dotyčnice
  • diskrétna = pomocou konečných diferencií

Operátory založené na prvej derivácií:

  • 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
    • Aproximuje veľkosť gradientu (prvej derivácie):
      • |f(m,n)=|f(m,n)f(m+1,n+1)|+|f(m,n+1)f(m+1,n)|
  • Sobelov operátor
    • romazání Gaussovým filtrem
    • centrální diference
    • Aproximuje veľkosť gradientu (prvej derivácie):
      • |f(m,n)=(xfysmooth(m,n))2+(yfxsmooth(m,n))2
  • 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
  • Prewitov operátor
    • rozmazání box filtrem
    • aproximace gradientu pomocí centrální diference
  • 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.

Laplaceův operátor (

Δ)

  • Aproximuje druhú deriváciu funkcie
    • 2f(m,n)=fxx(m,n)+fyy(m,n)

      21h2(010141010)
  • Výhody:
    • produkuje spojité hrany (presná lokalizácia)
    • uzavřené kontury
    • invariantní k otáčení o násobky 45°
    • orientačně nezávislý
  • Nevýhody:
    • detekuje nejen maxima, ale i minima
    • citlivý na šum
    • nedetekuje orientaci hrany

Laplacian of Gaussian (LoG)

  • 5x5 LoG:

Difference of Gaussians (DoG)

  • Aproximujeme LoG:
    • DoG=Gσ1Gσ2
      • σ1<σ2
      • ideálny poomer:
        σ1/σ2=1.6

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é.

  • forward - 1D diskrétna Fourierova transformácia:
    • F(k)fφk=1Nm=0N1f(m)e2πimkN
  • inverse - 1D diskrétna Fourieroová transformácia:
    • f(m)Fφk=1Nm=0N1F(k)e2πimkN

Daná je 2D diskrétna funkcia

f,
(M,N)
vzoriek a dve bázy
(φk,k={0,...,M1})
a
(φl,l={0,...,N1})
, definujeme:

  • k=0...M1,n=0...N1
  • komplexní jednotka
    i=(1)
  • Eulerova formula:
    e±i2πux=cos(2πux)±isin(2πux)
  • Majme bod o súradnici
    u=Re(u)+i(Im)(u)
    . Amplitudové spektrum funkcie
    F(u)
    je
    |F(u)|=Re2(u)+Im2(u)
    , fázové spektrum
    φ(u)=atan(Re(u)Im(u))
    .
  • forward - 2D diskrétna Fourierova transformácia
    • F(k,l)1MNm=0M1n=0N1f(m,n)e2πi(mkM+nlN)
  • inverse - 2D diskrétna Fourierova transformácia
    • f(m,n)1MNk=0M1l=0N1F(k,l)e2πi(mkM+nlN)


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ě:
    2. Posun (shift) v prostorové doméně ovlivňuje jenom fázu:


      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ě:

Vzorkovací teorém, převzorkování, geometrické transformace

Vzorkování

Comb function (||| - shah):

  • Vzorkování je proces převodu spojité funkce na diskrétní.

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.

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í.

Geometrické transformace

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í

Nelineární

  • Warping

Vlnková transformace

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

Výpočet

[Wψf](a,b)=f,ψa,b=+f(t)ψa,b(t)dt=+f(t)1aψ(tba)dt=fψa(b)=12πf^,ψ^a,b,

  • ψ
    , je tzv. mateřská vlnka a
    ψ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×VC,:V×VC
    značí skalární součin prostoru
    L2(R)
    ,
  • operátor
    označuje spojitou konvoluci
  • symbol
    u
    ψ
    označuje komplexně sdruženou funkci k
    ψ
    ,
  • ψa(t)=1aψ(ta)
    je spojitý filtr, který odpovídá vlnce
    ψ
    , pro dané měřítko
    a
  • f^
    , resp.
    ψ^a,b
    značí Fourierovu transformaci
    f
    , resp.
    ψa,b
    ,
  • dále
    aR+,bR

Vlnkovou transformaci je možno chápat jako skalární součiny s bázemi

ψa,b, jako integrální transformaci s jádrem
ψa,b
nebo jako konvoluce s funkcemi
ψa

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

Príklad: priamka v Houghovej transformácií je transformácia priamky v Carteskych súradniciach na bod v polarnych súradniciach pomocoou danej rovnice:

ρ=xcos(σ)+ysin(σ)=r

  • ρ
    je vzdialenosť od počiatku ku priamke
  • σ
    je uhol normály s rešpektom ku x-ovej osi

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"

  • RI(a,b)=I(x,y)δ(yaxb)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
    • RI(a,b)
      je výstupný obrázor (v parametrovom priestore)
    • yaxb=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