Home Tutorials Matlab Matlab per l'elaborazione delle immagini digitali: filtri di media, mediano, mid-point e controarmonico con imfilter, fspecial e altre funzioni

Page Rank Check    





Matlab per l'elaborazione delle immagini digitali: filtri di media, mediano, mid-point e controarmonico con imfilter, fspecial e altre funzioni
Tutorials - Matlab
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 13:39

Matlab per l'elaborazione delle immagini digitali: filtri di media, mediano, mid-point e controarmonico con imfilter, fspecial e altre funzioni

In questo articolo mostrerò come definire ed applicare, mediante script in Matlab, alcuni filtri per immagini digitali: media aritmetica e geometrica, mediano, mid-point e controarmonico.

NOTA IMPORTANTE: utilizzare, con questo script, solo immagini in scala di grigi a 8 bit, o Matlab restituirà un errore per via delle dimensioni delle matrici, che non coincideranno.

Per alcuni comandi di manipolazione delle immagini in forma di matrici (size, cicli for, uint8, ...) si rimanda all'articolo, pubblicato precedentemente, sulle basi dell'elaborazione delle immagini digitali mediante Matlab.

Questo script non va ricopiato per intero in una volta, ma eseguito 'passo-passo', ogni volta che trovate una riga contenente una o più istruzioni imshow: in effetti, con questo script vengono presentati più filtri, con dimensioni di maschere differenti, che mostrati tutti insieme genererebbero solo confusione...

Altra nota importante: per eseguire tutte le porzioni degli script in maniera corretta dovrete procurarmi i file di libreria gmean e charmean (se non sono già presenti nel vostro pacchetto); li trovate, comunque, gratuitamente online.

 

 

Ecco lo script:

>> clear;
>> immagine = zeros(234,234);
>> for i=1:9
immagine(12:224, ((17*i+(7*(i-1))):(17*i+(7*(i-1)+7)))) = 1;
end;
>> imshow(immagine);


% Applico i filtri di media aritmetica
>> w1 = fspecial('average', [3,3]);
>> arit3x3 = imfilter(immagine,w1);
>> w2 = fspecial('average', [5,5]);
>> arit5x5 = imfilter(immagine,w2);
>> w3 = fspecial('average', [7,7]);
>> arit7x7 = imfilter(immagine,w3);
>> subplot(2,2,1); imshow(immagine); subplot(2,2,2); imshow(arit3x3); subplot(2,2,3); imshow(arit5x5); subplot(2,2,4); imshow(arit7x7);


% Applico i filtri di media geometrica
>> mediaGeometrica3x3 = gmean(immagine, 3,3);
>> mediaGeometrica5x5 = gmean(immagine, 5,5);
>> mediaGeometrica7x7 = gmean(immagine, 7,7);
>> subplot(2,2,1); imshow(immagine); subplot(2,2,2); imshow(mediaGeometrica3x3); subplot(2,2,3); imshow(mediaGeometrica5x5); subplot(2,2,4); imshow(mediaGeometrica7x7);


% Applico il filtro mediano
>> mediano3x3 = medfilt2(immagine, [3,3]);
>> mediano5x5 = medfilt2(immagine, [5,5]);
>> mediano7x7 = medfilt2(immagine, [7,7]);
>> subplot(2,2,1); imshow(immagine); subplot(2,2,2); imshow(mediano3x3); subplot(2,2,3); imshow(mediano5x5); subplot(2,2,4); imshow(mediano7x7);


% Applico il filtro mid-point
>> minimo3x3 = ordfilt2(immagine, 1, ones(3,3));
>> massimo3x3 = ordfilt2(immagine, 9, ones(3,3));
>> midpoint3x3 = 0.5 .*(minimo3x3 + massimo3x3);
>> minimo5x5 = ordfilt2(immagine, 1, ones(5,5));
>> massimo5x5 = ordfilt2(immagine, 25, ones(5,5));
>> midpoint5x5 = 0.5 .*(minimo5x5 + massimo5x5);
>> minimo7x7 = ordfilt2(immagine, 1, ones(7,7));
>> massimo7x7 = ordfilt2(immagine, 49, ones(7,7));
>> midpoint7x7 = 0.5 .*(minimo7x7 + massimo7x7);
>> subplot(2,2,1); imshow(immagine); subplot(2,2,2); imshow(midpoint3x3); subplot(2,2,3); imshow(midpoint5x5); subplot(2,2,4); imshow(midpoint7x7);


% Applico il filtro di media controarmonica con Q=1
>> controarmonico3x3 = charmean(immagine, 3,3, 1);
>> controarmonico5x5 = charmean(immagine, 5,5, 1);
>> controarmonico7x7 = charmean(immagine, 7,7, 1);
>> subplot(2,2,1); imshow(immagine); subplot(2,2,2); imshow(controarmonico3x3); subplot(2,2,3); imshow(controarmonico5x5); subplot(2,2,4); imshow(controarmonico7x7);

Bye !

Tags:     tutorial      matlab      script      scripting      elaborazione      immagini digitali      filtri      media      mediano      mid-point      controarmonico      imfilter      fspecial      funzioni
Ultimo aggiornamento Sabato 21 Gennaio 2012 21:00
 

Ti è piaciuto questo articolo ? Condividilo !



RedBaron85.com Forum community banner

Non hai trovato quello che cercavi ?
Ricerca personalizzata
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.

Milanese Francesco - Partita IVA: 04950350878

AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials