Simítás és szűrés Matlabban
Zaj generálása
A zaj generálása az imnoise() függvénnyel lehetséges. A függvény első paramétereként meg kell adni a képmátrixot, majd a zaj típusát, illetve annak jellemzőit. Matlabban az alábbi zajtípusokat lehet generálni:
- Gauss-zaj
- Só-bors zaj
- Poisson eloszlású zaj
>> img = imread('kormany_320x213.jpg');
>> img_noise = imnoise(img, 'gaussian');
>> imshow(img_noise);
Szűrők alkalmazása
A képtérben történő szűrőket Matlabban az fspecial() függvény valósítja meg. A függvény paramétereként meg kell adni a szűrő típusát, valamint további paraméterként (amely függ a szűrő típusától), a szűrő méretét, illetve jellemzőit. A típust illetően az alábbiak közül választhatunk:
- average - átlagoló
- disk - körlap
- laplacian - Laplace-féle
- gaussian - Gauss-szűrő
- log - logaritmikus
- motion - "bemozdult, elmozdult" szűrő
- prewitt - gradiens szűrő (éldetektáláshoz)
- sobel - gradiens szűrő (éldetektáláshoz)
A szűréshez az fspecial() függvénnyel le kell generálni a szűrőt, majd az imfilter() függvénnyel lehet alkalmazni a szűrőt.
>> img = imread('Culombo.JPG');
>> filter = fspecial('average', 11);
>> result = imfilter(img, filter);
>> imshow(result);
A medián szűrést a medfilt2() függvénnyel végezhetjük el. A szűrő méretét, második paraméterként tömb formájában adhatjuk meg.
>> img = imread('Culombo.JPG');
>> result = medfilt2(img, [11 11]);
>> imshow(result);
A min-max szűrőket erózióként és dilatációként találjuk Matlabban. Az imerode() és imdilate() függvények hajtják végre az eróziót és a dilatációt. A függvények paraméterezése hasonló, első paraméterként meg kell adni az input képet, második paraméterként pedig a szerkesztőelemet (structuring element). A szerkesztőelemet külön függvénnyel generálhatjuk le. Erre szolgál a strel() függvény, amely paramétereként megadható a szerkesztőelem alakja és mérete.
>> img = imread('Culombo.JPG');
>> se = strel('disk', 11);
>> res_erode = imerode(img, se);
>> res_dilate = imdilate(img, se);
>> imshow(res_erode);
>> imshow(res_dilate);
![]() |
![]() |
|
Eredeti kép |
Átlagoló szűrő eredménye |
Medián szűrő eredménye |
![]() |
![]() |
|
Erózió (min szűrő) SE=disk, 11 | Dilatáció (max szűrő) SE=disk, 11 |
A továbbiakban elmélyedünk az átlagoló, a medián, valamint a min-max szűrő megvalósításában.