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);

Átlagoó szűrővel készült eredmény Medián szűrő eredménye
Eredeti kép

Átlagoló szűrő eredménye

Medián szűrő eredménye

  Erózió (min szűrő) eredménye Dilatáció (max 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.