Skip to content

Commit

Permalink
Move more stuff from cafour.cz
Browse files Browse the repository at this point in the history
  • Loading branch information
cafour committed Jan 7, 2024
1 parent bfb907a commit c436d75
Show file tree
Hide file tree
Showing 23 changed files with 1,527 additions and 0 deletions.
463 changes: 463 additions & 0 deletions pa213/index.ad

Large diffs are not rendered by default.

46 changes: 46 additions & 0 deletions pv131/01_intro.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
= 1. Introduction, Images and Their Properties

[.question]
Jaký je rozdíl mezi pixelem a voxelem?

Pixel::
Picture element

Voxel::
Volume element

[.question]
Nadefinujte digitální barevný obraz.

Funkce

[.question]
Vysvětlete rozdíl mezi izotropním a anizotropním obrazem.

Izotropní obraz::
Má stejnou vzorkovací frekvenci ve všech dimenzích.

Anizotropní obraz::
Není izotropní.

[.question]
Odvoďte vztah, kolik úrovní intenzit má N-bitový šedotónový obraz.

stem:[2^N], protože tolik hodnot narveme do N-bitového čísla bez znaménka.

[.question]
Vyjmenujte 3 základní druhy šumu, které jsou přítomny v obraze pořízeném běžnou kamerou.

Aditivní šum::
Převážně Gaussián. Způsoben amplifikací v elektronice.

Impulsní šum::
Náhodné očernění nebo obělení pixelu. Sůl a pepř.

Poissonůn šum::
Fotony nebo co.

[.question]
Jaký je rozsah vlnových délek, které vnímá lidské oko?

[380, 740] nm
30 changes: 30 additions & 0 deletions pv131/02_convolution.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
= 2. Convolution and Linear Filters

[.question]
Vysvětlete, co je to konvoluční jádro.

Matice, která se postupně posouvá přes obraz a jejíž hodnoty jsou použity jako váhy přiv váženém součtu příslušných hodnot.

[.question]
Odvoďte, jakou časovou složitost má konvoluce obrazu I o velikosti K x L s obecným konvolučním jádrem velikosti M x N.

stem:[O(KLMN)]

[.question]
Uveďte příklad 2D vyhlazovacího filtru, který zachovává průměrnou intenzitu obrazu.

Gaussián.

[.question]
Co to znamená, že filtr je LSI? Nepřekládejte, ale vysvětlete význam.

LSI := Linear shift invariant

stem:[O(T_(a,b) (f(x, y)))) = T_(a, b) (O(f(x, y)))]

[.question]
Formálně zapište vlastnost distributivity diskrétní konvoluce vzhledem ke sčítání. Tuto vlastnost dokažte.

[.question]
Formálně nadefinujte 2D lineární filtr. Uveďte konkrétní příklad takového filtru a formálně dokažte, že vyhovuje Vaší
definici.
58 changes: 58 additions & 0 deletions pv131/03_fourier.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
= 3. 1D Fourier Transform

[.question]
Mějme funkci stem:[f(x) = 0.4 * sin(2\pi(x-1))]. Určete její amplitudu, frekvenci a fázový posun.

* Amplituda: 0.4, protože sinus
* Frekvence: 1 Hz, protože sinus má frekvenci stem:[2\pi], ale tady už stem:[2\pi] je
* Prostorová / časová frekvence: 1 Hz / stem:[m^-1] za předpokladu, že výsledek je v metrech
* Úhlová frekvence: stem:[2\pi]
* Posun: 1

[.question]
Mějme komplexní číslo z = 1 - i. Určete jeho amplitudu a fázi.

* Amplituda: stem:[sqrt(1^2 + (-1)^2) = sqrt(2)]
* Fáze: stem:[\text{atan2}(y, x) = \text{atan2}(-1, 1) = -0.785]

[.question]
Formálně nadefinujte 1D diskrétní Fourierovu transformaci a rozhodněte, zda se jedná o lineární operátor. Své tvrzení
podložte formálním důkazem.

Lineární operátor stem:[f]::
[stem]
====
f(I * J) = f(I) * f(J )
====

[.question]
Jaká operace ve frekvenční doméně odpovídá konvoluci v obrazové doméně?

Násobení.

[.question]
Co je obrazem Gaussiánu (umístěného do počátku souřadné soustavy) ve frekvenční doméně?

Gaussian ale tak nějak menší nebo co.

[source, matlab]
----
G = fspecial('gaussian', 21, 5);
surf(G)
surf(abs(double(ft(G))))
----

image::pv131/gaussiansd.jpg[]
image::pv131/gaussianfd.jpg[]

[.question]
Kolik bázových funkcí je zapotřebí pro realizaci FT nad 1D diskrétním signálem délky N? Jak dlouhý bude výstupní
signál ve frekvenční doméně?

1D DFT::
[stem]
====
Phi(omega_x) = sum_(x=0)^(N-1) f(x) * e^(-i(2pi)/N * omega_x * x)
====

Výstupní signál bude dlouhý stem:[N].
36 changes: 36 additions & 0 deletions pv131/04_more_fourier.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
= 4. 2D/3D Fourier Transform + Filtering in Frequency Domain

[.question]
Odvoďte časovou složitost 2D DFT pro obraz velikosti M x N.

2D DFT je 1D DFT aplikovaná dvakrát. Pokud složitost vnitřní DFT je stem:[O(N^2)] pak složitost vnější DFT bude
stem:[O(M^2*N^2)].

[.question]
Vysvětlete, proč se při zobrazení amplitud ve Fourierově doméně používá logaritmická škála.

Protože je to pak líp vidět.
+
Největší amplituda zkrátka bývá tak velká, že při lineárním zobrazení nejsou ostatní amplitudy vidět. Jenže ty ostatní
amplitudy nás zajímají taky, tak to celé dáme sežrat logaritmu, čímž se největší peak zmenší.

[.question]
Dokažte, že 2D diskrétní Fourierova transformace je separabilní.

[.question]
Znázorněte 1D frekvenční doménu digitálního signálu délky N. Popište osy a následně nakreslete 1D nízkofrekvenční box
filtr, který odstraní K nejvyšších frekvencí.

Nakresli krabici s hranou stem:[2 * (N - K)] "položenou" na počátku.

[.question]
Znázorněte 2D frekvenční doménu digitálního obrazu velikosti N x N. Popište osy a následně nakreslete 2D
nízkofrekvenční kruhový filtr, který odstraní frekvence vyšší než stem:[w_(threshold) = N/4].

Nakresli válec s poloměrem podstavy N/4 "položený" na počátku.

[.question]
Znázorněte 2D frekvenční doménu digitálního obrazu velikosti 8 x 8. Určete, který Fourierův koeficient je komplexně
sdružený s Fourierovým koeficientem na pozici stem:[(w_x, w_y) = (5, 7)].

Ten středově souměrný podle počátku, stem:[(-5, -7)].
50 changes: 50 additions & 0 deletions pv131/05_filtering.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
= 5. Correspondence between Spatial and Frequency Filtering, Sampling Theorem

[.question]
Zobrazte v Matlabu, jak vypadá Sobelův filtr převedený do frekvenční domény. Vysvětlete, které frekvence jsou
potlačovány a které naopak zvýrazňovány.

Zelená čerchovaná čára. Potlačeny jsou velmi nízké a velmi vysoké frekvence.

image::pv131/ftsobel.png[]

[source, matlab]
----
plot(abs(fft(padarray([1 0 -1]', 20))))
----

[.question]
Vysvětlete původ vertikální čáry v levém dolním obrázku na slidu č. 3.

image::pv131/stripesd.jpg[]
image::pv131/stripefd.jpg[]

Kvůli prvnímu a poslednímu řádku vzniká periodicita.

[.question]
Formálně nadefinujte 2D ideální nízkofrekvenční filtr s obdélníkovým profilem. Odvoďte i jemu odpovídající filtr v
prostorové doméně.

Obdélník ve frekvenční doméně nad nízkými frekvencemi, které nás zajímají. V prostorové doméně vypadá jako
stem:[k * (\text{sinc}(ax)) / (ax)].

[.question]
Mějte libovolný 2D digitální obraz, který následně poškodíme gaussovským aditivním šumem. Vysvětlete, v čem se liší
frekvenční spektrum původního a zašuměného obrazu.

Šum bude i ve frekvenční doméně.

[.question]
Mějme 2D digitální šedotónový obraz velikosti 256x512 pixelů. Rozhodněte, zda je obraz frekvenčně omezený. Pokud ano,
určete nejvyšší frekvenci v něm obsaženou (v každé ose zvlášť) a uveďte min. vzorkovací frekvenci
(dle Nyquistova teorému), která navzorkuje obraz tak, aby byl plně rekonstruovatelný. Pokud ne, zdůvodněte proč.

* Maximální frekvence podle osy x: 256
* Maximální frekvence podly osy y: 512

Nyquistův teorém::
Band-limited signal should be sampled at a rate of at least twice its highest-frequency component (i.e. the sampling
frequency should be equal at least to the Nyquist rate). If the band-limited signal is sampled at the Nyquist rate,
it is possible to reconstruct it exactly.

Podle Nyquistova teorému chceme vzorkovací frekvenci 512 pro osu x a 1024 pro osu y.
67 changes: 67 additions & 0 deletions pv131/06_pyramids.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
= 6. Multi-scale analysis, Pyramids, Wavelets

[.question]
Vysvětlete princip konstrukce Laplaceovy pyramidy o 4 úrovních.

Pyramida::
Série postupně downsamplovaných verzí původního obrázku.

Gaussovská pyramida::
Na obrázky je při downsamplování aplikován Gaussián. Je low-pass filtering (LPF) pyramidou.

Laplaceova pyramida::
Pyramida map hran. Typicky vzniká aplikací Laplacián na Gaussovskou pyramidu, tedy operace při downsaplovaní je ve
finále Laplacian of Gaussian (LoG). Je high-pass filtering (HPF) pyramidou.

Reprezentace obrázku pomocí pyramidy::
HPF pyramida a LPF pyramida se vzájemně doplňují. LPF pyramida se však lépe komprimuje, čehož se využívá při uchovávání
obrázků. LPF úroveň k se dá zkombinovat s HPF úrovní k+1 a vznikne (skoro) LPF úroveň k+1.

Konstrukce truncated HPF pyramidy o 4 úrovních::
Originál je na úrovni j, považujme ho za stem:[LPF_j]. Nechť stem:[LPF_{j-1} = \text{downsample}(\text{blur}(LPF_j))]
a stem:[HPF_{j} = LPF_j - \text{blur}(\text{upsample}(LPF_{j-1}))].
+
Pyramida o 4 úrovních by se skládala z stem:[HPF_j, HPF_{j-1}, HPF_{j-2}, LPF_{j-3}].

[.question]
Mějme jednorozměrný diskrétní signál I délky 64. Pro výpočet 1D-DWT bylo použito stem:[j_0=4]. Určete, jaký dlouhý je
výsledný signál, tj. kolik je dohromady aproximačních a waveletových koeficientů.

[stem]
++++
J = 6 \\
\#D_5 = 32 \\
\#D_4 = 16 \\
\#A_4 = 16
++++

[.question]
Je dán dvourozměrný diskrétní obraz I o velikosti 256x256 pixelů a na něm provedená 2D-DWT s Haarovou bázovou funkcí
až do úrovně stem:[j_0=6]. Určete, kolik bude ve výsledném transformovaném obraze aproximačních koeficientů.

[stem]
++++
\#A_6 = 64 \times 64
++++

[.question]
Je dán dvourozměrný diskrétní obraz I o velikosti 512x512 pixelůa na něm provedená 2D-DWT s Haarovou bázovou funkcí
až do úrovně, kdy je ve výsledném obraze přítomen jen 1 aproximační koeficient. Určete, kolik bylo třeba provést
rozkladů na nízkofrekvenčních a vysokofrekvenční složky.

Jelikož nejnižší úroveň je stem:[j_0 = 0] a stem:[J = 9], je třeba 9 rozkladů.

[.question]
Vynulování aproximačních koeficientů odpovídá eliminaci nejnižších frekvencí v původním obraze. Vytvořte matlabovskou
funkci, která tímto způsobem realizuje ve čtvercovém obraze detekci hran.

[source, matlab]
----
function [O] = detectEdges(I)
[C,S] = wavedec2(double(I), 8, 'haar');
C(1:256) = 0;
O = dip_image(waverec2(C, S, 'haar'));
end
----

Pozn.: Nezdá se mi, že tohle je to, co chtějí. Navíc to funguje jen pro rozlišení 256x256.
51 changes: 51 additions & 0 deletions pv131/07_nonlinear.ad
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
= 7. Nonlinear Filtering

[.question]
Mějme 2D diskrétní obrázek stem:[I] a dva 2D nelineární filtry stem:[A] a stem:[B]. Rozhodněte, zda platí
stem:[A(B(I))=B(A(I))].

Ne. Představte si za I šachovnici, za A max filtr a za B min filtr. (Viz slide č. 46.)

[.question]
Mějme 2D diskrétní obrázek stem:[I], 2D nelineární filtr stem:[A] a 2D lineární filtr stem:[B[]. Rozhodněte, zda
platí stem:[A(B(I))=B(A(I))].

Ne. Představte si zašumelý obrázek, za A median a za B gaussian. (Viz slide č. 47.)

[.question]
Vysvětlete princip efektivní implementace 1D mediánového filtru pomocí klouzajícího okna.

Viz cvičení 7.

Máme okno s velikostí N, které na začátku seřadíme. Pro každý pixel na pozici I nahradíme jeho intenzitu v okně
intenzitou pixelu I + N a do výstupního obrazu zapíšeme medián okna.

[.question]
Zapište difúzní filtraci obrazu formou parciální diferenciální rovnice s počáteční podmínkou a vysvětlete jednotlivé
členy v této rovnici.

Difúzní filtrování::
Založeno na myšlence difúze z fyziky.
+
[stem]
++++
\partial_t u = \text{div}(g * \nabla u) = g * \text{div} (\nabla u)
++++
+
Pokud g je konstanta, pak se jedná o lineární difúzi.
+
[stem]
++++
\partial_t u = g * \Delta u
++++
+
[stem]
++++
\frac{\partial u (x, y, t)}{\partial t} = u(x, y, t) \otimes L
++++

[.question]
Mějme obraz poškozený impulzním šumem. Rozhodněte, který z dvojice filtrů medián a gaussián je vhodný k potlačení
tohoto šumu. Své tvrzení zdůvodněte.

Medián je supr na sůl a pepř, protože osamocenou změnu intenzity dopočítá z okolí, zatímco Gaussian ji rozmaže.
Loading

0 comments on commit c436d75

Please sign in to comment.