Na cvičeních z MPV budeme intenzívne využívat programovací prostředí MATLAB. V případě, že jste ještě neprišli do styku s tímhle prostředím, nastudujte si následující části z "Getting started with MATLAB":
(samostudium doma)
Další potřebnou součásti přípravy na cvičení z MPV je zvládnutí základů spracování obrazu v jazyku MATLAB.
G=gauss(x,sigma)
, která vygeneruje diskrétní vzorky GaussiánuD=dgauss(x,sigma)
, která vratí diskrétní vzorky první derivace Gaussiánuconv2
.
sigma = 6.0; x = [-ceil(3.0*sigma):ceil(3.0*sigma)]; G = gauss(x, sigma); D = dgauss(x, sigma); imp = zeros(51); imp(25,25) = 255; out = conv2(G,G,imp); ... imagesc(out); % nebo surf(out);vyzkoušejte impulzní odezvy na ostatní kombinace Gaussiánu a jeho derivace.
out=gaussfilter(in,sigma)
, která aplikuje vyhlazení Gaussovým filtrem o velikosti 2*(sigma*3.0)+1
s variancí <latex>\sigma^2</latex> na vstupní obrázek in a vrátí vyhlazený obrázek out (např. Lenna). Využijte separability Gaussovského filtru, a vyhlazení implementujte jako dvě konvoluce s 1D Gaussiánem (vid. funkce conv2
).
[dx,dy]=gaussderiv(in,sigma)
, která vrátí odhad gradientu (gx, gy) v každém bodě vstupního obrázku in (MxN matice) po vyhlazení Gaussiánem s variancí <latex>\sigma^2</latex>. Použijte buď derivaci Gaussiánu nebo konvoluci se symetrickou differenci.
[dxx,dxy,dyy]=gaussderiv2(in,sigma)
, která vrátí všechy druhé derivace vstupního obrazu in (MxN matice) po vyhlazení Gaussiánem s variancí <latex>\sigma^2</latex>.
Kapitoly [3,4,5] o Gaussiánu a jeho derivacích a jejich úloze pri zpracování obrazu (další kapitoly)
out=affinetr(in,A,ps,ext)
, která transformuje výřez obrázku in (MxN matice) do kanonického souřadného systému. Afinní transformace A (3×3 matice) je transformace z kanonického souřadného systému do obrázku v homogénních souřadnicích. ps určuje délku strany výsledního obrázku a ext je reálné číslo, velikost výřezu v kanonickém souřadném systému. Příklad: out=affinetr(in,A,41,3.0)
, vrátí výrěz obrázku o velikosti 41×41 odpovídajíci okolí (-3.0,-3.0)x(3.0,3.0) v kanonickém souřadném systému. Levý horní roh obrázku má souřadnice (0,0). Použijte bilineární interpolaci. Testujte na img1.png.
Do odevzdávacího systému nahrajte .zip archiv s funkcemi implementovanými v MATLABu: gauss.m
, dgauss.m
, gaussfilter.m
, gaussderiv.m
, gaussderiv2.m
, affine.m
a affinetr.m
v kořenovém adresáři. Archiv musí obsahovat všechny potřebné použité funkce. Dodržujte pořadí a počet parametrů.
Geometrické transformace - hierarchie transformací, homogenní souřadnice
Geometrické transformace - opakování z predmětu Digitální obraz
Pro kontrolu výsledků vašich funkcií jsme použili skript a funkci MATLABu publish. Nakopírujte test.m do cesty MATLABu (nebo adresáře s vašimi funkcemi) a spusťte. Výsledky si ověrte na referenčním řešení (opraveno 16.2.2011, 18:10).