3. Predobdelava slik

Najbolj »računsko« poglavje predmeta: histogram, konvolucija, filtri, detektorji robov. Daje izpitne naloge 4, 5, 6 in 7 — 80 od 500 točk, največ od vseh poglavij.

Cilj predobdelave razumevanje

Predobdelava se izvaja na najnižjem nivoju abstrakcije slike (tj. nivoju pikslov). Cilj:

Večjo učinkovitost dosežemo, če imamo vnaprejšnje znanje o sliki in tipu degradacije v sliki.

Spreminjanje kontrasta ključno

Najpreprostejše spreminjanje kontrasta je oblike $g' = \mathcal{F}(g)$, kjer je

Funkcijo $\mathcal{F}$ imenujemo tudi točkovna operacija oz. operacija piksel-v-piksel. V splošnem ne obstaja inverz funkcije $\mathcal{F}$ — informacija se lahko nepovratno izgubi.

A. Linearizacija sivin

na listu
Linearizacija
$$g' = \frac{Q}{\max - \min}(g - \min)$$

B. Histogram sivin

Histogram daje preprost pregled nad porazdelitvijo sivin v sliki. Je vektor, ki ima toliko elementov, kot je teoretično maksimalna kontrastna ločljivost v sliki ($Q + 1$):

na listu
Histogram sivin
$$h = [h_0, h_1, \dots, h_Q]$$

kjer je $h_i$ število pikslov v sliki, ki imajo sivino enako $i$. Histograme prikazujemo kot stolpične grafe.

C. Izenačitev histograma naloga 4

Je postopek za avtomatsko spreminjanje kontrasta. Izboljša kontrast za sivine, ki so blizu maksimumov v histogramu, ter zmanjša kontrast za sivine blizu minimumov.

na listu
Izenačitev histograma
$$g' = \frac{Q}{MN} \sum_{i=0}^{g} h_i$$

Zgolj, če so vse sivine v sliki zastopane z istim deležem, je postopek izenačitve histograma enak linearizaciji.

⚠️ Tri pasti pri nalogi 4
  1. Vsota teče do vključno opazovane sivine $g$ — torej kumulativa, ne posamezen $h_g$.
  2. $MN$ je število pikslov cele slike (pri 5×4 sliki je 20), ne število različnih sivin.
  3. $Q$ je ciljna maksimalna sivina (naloga jo pove, npr. 255), ne največja sivina vhodne slike.

D. Prenosne funkcije sivin

Spreminjanje kontrasta definiramo s funkcijo v grafu:

Uporaba grafa: izberemo vhodno vrednost → odčitamo izhodno vrednost funkcije → izhodno vrednost pomnožimo z $Q$. Izhodne vrednosti, ki so nad simetralo, pomenijo, da smo sliko posvetlili (in obratno).

Originalne prosojnice (str. 35–39)
353637 3839

Lokalne operacije oz. filtriranje slik ključno naloge 5–7

Filter je sistem. Obnašanje diskretnega sistema je popolnoma opredeljeno z enotinim odzivom $H$ (ob pogoju, da je sistem linearen in pomično neodvisen — velja za večino realnih sistemov).

Filtriranje slik shematsko opredelimo tako, da novo vrednost piksla $p$ določimo kot funkcijo $\mathcal{F}$, ki operira nad pikslom $p$ in njegovo okolico $O$:

Filtriranje
$$I'(p) = \mathcal{F}(O_p)$$

Kako filtriramo sliko?

  1. Določimo obnašanje filtra
  2. Izračunamo konvolucijo med masko $H$ in sliko $I$: $\;I' = I * H$
    1. masko $H$ položimo na sliko $I$ tako, da je sredina maske poravnana s pikslom $p$;
    2. izračunamo produkt med vsakim elementom maske in pripadajočim pikslom slike, ki se nahaja direktno pod tem elementom maske;
    3. produkte seštejemo ter dobimo novo oz. filtrirano vrednost piksla $I'(p)$.

Celotno sliko filtriramo tako, da opisani postopek ponovimo za vsak piksel — običajno začnemo v levem zgornjem kotu in nadaljujemo od leve proti desni ter od zgoraj navzdol.

⚠️ Nove vrednosti gredo v NOVO sliko

Pri filtriranju moramo nove vrednosti shranjevati v novo sliko (pri točkovnih operacijah to ni bilo potrebno). Če bi računal »na mestu«, bi za sosede uporabljal že filtrirane vrednosti in rezultat bi bil napačen.

Problemi

Originalni prosojnici (str. 41–42)
4142

Odstranjevanje šuma z lokalnimi operatorji nalogi 5–6

Imenujemo jih tudi operatorji glajenja (smoothing operators). Njihova slabost: zapacajo ostre robove objektov v slikah.

A. Nizko sito (low-pass filter)

B. Visoko sito (high-pass filter)

Ima obratno funkcionalnost kot nizko sito: visoke frekvence prepušča, nizke pa duši.

na listu
Nizko in visoko sito 3×3
$$H_{\text{nizko}} = \frac{1}{9}\begin{bmatrix}1&1&1\\1&1&1\\1&1&1\end{bmatrix} \qquad H_{\text{visoko}} = \begin{bmatrix}1&-2&1\\-2&5&-2\\1&-2&1\end{bmatrix}$$

C. Gaussov filter

Masko dobimo iz Gaussovega jedra:

na listu
Gaussovo jedro
$$G_\sigma = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}$$

$(i, j)$-ti element maske velikosti $(2k+1)\times(2k+1)$ pikslov dobimo kot:

na listu
Element Gaussove maske
$$H(i,j) = \frac{1}{2\pi\sigma^2} e^{-\frac{(i-k-1)^2 + (j-k-1)^2}{2\sigma^2}}$$

Primeri Gaussovih mask iz predavanj:

Dve pogosti masko
$$H = \frac{1}{16}\begin{bmatrix}1&2&1\\2&4&2\\1&2&1\end{bmatrix} \qquad \text{in} \qquad H = \frac{1}{10}\begin{bmatrix}1&1&1\\1&2&1\\1&1&1\end{bmatrix}$$

D. Mediani filter naloga 5

Ideja: trenutni piksel zamenjamo z vrednostjo mediane iz njegove okolice.

💡 Zakaj je mediana boljša od povprečja pri impulznem šumu

En sam piksel z vrednostjo 255 sredi področja z vrednostmi okoli 30 pri povprečju premakne rezultat za ~25 sivin. Pri mediani pa ta piksel pristane na koncu urejenega niza in na srednjo vrednost sploh ne vpliva. Zato mediani filter impulzni šum odstrani, ne pa razmaže.

Originalne prosojnice (str. 43–46)
4344 4546

Detektorji robov ključno naloga 7

Uporabljajo se za ugotavljanje nenadnih sprememb v funkciji intenzivnosti — pravi robovi so piksli, kjer se ta funkcija nenadno in močno spremeni.

Rob je vektorska spremenljivka, sestavljena iz dveh komponent:

  1. velikost (jakost) roba — velikost gradienta;
  2. smer roba — smer gradienta minus 90° (če smer 0° kaže proti vzhodu).
na listu
Velikost in smer gradienta (zvezno)
$$|\operatorname{grad} I(x,y)| = \sqrt{\left(\frac{\partial I}{\partial x}\right)^2 + \left(\frac{\partial I}{\partial y}\right)^2} \qquad \psi = \arctan\!\left(\frac{\partial I}{\partial y} \Big/ \frac{\partial I}{\partial x}\right)$$

Digitalne slike so diskretne, zato moramo parcialne odvode aproksimirati z razlikami:

na listu
Tri aproksimacije odvoda
$$\frac{\partial I(i,j)}{\partial x} \approx \frac{I(i,j) - I(i-\triangle x, j)}{\triangle x} \quad \text{— razlika nazaj}$$ $$\frac{\partial I(i,j)}{\partial x} \approx \frac{I(i+\triangle x, j) - I(i,j)}{\triangle x} \quad \text{— razlika naprej}$$ $$\frac{\partial I(i,j)}{\partial x} \approx \frac{I(i+\triangle x, j) - I(i-\triangle x, j)}{2\triangle x} \quad \text{— simetrična razlika}$$

$\triangle x$ je običajno enak 1; podobno zapišemo parcialni odvod po $y$ in 2. odvode.

Če sliko $I$ obdelamo z detektorjem robov, dobimo sliko robov $E$ (edge image): vsak piksel v tej sliki ima dve komponenti — velikost roba in smer roba.

A. Laplaceov operator

na listu
Laplaceova maska 3×3
$$H = \begin{bmatrix}1&1&1\\1&-8&1\\1&1&1\end{bmatrix}$$

B. Sobelov operator

Ima osem konvolucijskih mask, za nas sta pomembni dve: za poudarjanje horizontalnih (maska $H_1$) in vertikalnih (maska $H_2$) robov.

na listu
Sobelovi maski
$$H_1 = \begin{bmatrix}1&2&1\\0&0&0\\-1&-2&-1\end{bmatrix} \qquad H_2 = \begin{bmatrix}1&0&-1\\2&0&-2\\1&0&-1\end{bmatrix}$$

Če je $Y = I * H_1$ in $X = I * H_2$, potem je:

na listu
Velikost in smer roba
$$\text{velikost roba} = \sqrt{X^2 + Y^2} \quad \text{oz.} \quad |X| + |Y| \qquad\qquad \text{smer roba} = \arctan\!\left(\frac{Y}{X}\right)$$

Pravi robovi so tam, kjer je velikost roba velika!

⚠️ Eksaktna formula ali približek?

Naloga 7 izrecno pove »uporabimo eksaktno formulo«. To pomeni $\sqrt{X^2+Y^2}$, ne $|X|+|Y|$. Približek $|X|+|Y|$ da vedno večji rezultat — z njim bi piksel lahko napačno razglasil za pravi rob.

Originalne prosojnice (str. 47–50)
4748 4950

Preveri se

1Slika 5×4 ima 20 pikslov, histogram h = [2, 4, 3, 2, 3, 2, 3, 1]. V katero sivino se pri izenačitvi histograma preslika sivina 1, če je Q = 255?
Razlaga

Formula je $g' = \frac{Q}{MN}\sum_{i=0}^{g} h_i$ — vsota je kumulativna do vključno g = 1, torej $h_0 + h_1 = 2 + 4 = 6$.

$g' = \frac{255}{20} \cdot 6 = 12{,}75 \cdot 6 = 76{,}5 \to \mathbf{77}$. Odgovor a) je past za tiste, ki vzamejo samo $h_1$ namesto kumulative.

2Kaj je mediana okolice 3×3 z vrednostmi 1, 102, 46, 198, 66, 67, 208, 204, 37?
Razlaga

Urejeno: 1, 37, 46, 66, 67, 102, 198, 204, 208. Pri devetih vrednostih je mediana peta po vrsti = 67.

Odgovor b) je past: mediana ni vrednost sredinskega piksla, ampak srednja vrednost urejenega niza. Odgovor c) je past za povprečje (nizko sito).

3Sobelov operator da X = −366 in Y = 368. Je piksel »pravi« rob pri pragu > 500, če uporabimo eksaktno formulo?
Razlaga

$\sqrt{X^2 + Y^2} = \sqrt{133956 + 135424} = \sqrt{269380} \approx 519{,}0 > 500$ → je pravi rob.

Predznak $X$ pove le smer gradienta, na velikost ne vpliva, ker ga kvadriramo. Če bi uporabili približek $|X| + |Y| = 734$, bi bil odgovor prav tako »da« — a pri drugih številkah bi se odgovora razlikovala, zato naloga posebej pove, katero formulo uporabiti.