Home Tutorials Matlab Matlab per l'elaborazione delle immagini digitali: elementi strutturali e operatori morfologici per modificare le immagini

Page Rank Check    





Matlab per l'elaborazione delle immagini digitali: elementi strutturali e operatori morfologici per modificare le immagini
Tutorials - Matlab
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 13:41

Matlab per l'elaborazione delle immagini digitali: elementi strutturali e operatori morfologici per modificare le immagini

Lo script qui presentato modella, con degli operatori morfologici, un'immagine di input (creata, in questo caso, all'interno dello script).

Verrà fatto uso, quindi, di 'operatori morfologici' messi a disposizione da Matlab (ne verranno mostrati solo tre: imerode, imdilate e imclose; sono disponibili altri strumenti, per i quali si rimanda, però, alla documentazione di Matlab) e di elementi strutturali per la modellazione, creati mediante la funzione di libreria strel (per maggiori informazioni, digitate 'help strel' , senza apici, nella Command View di Matlab).

L'analisi della teoria che sta alla base della modifica delle immagini digitali mediante elementi strutturali e operatori morfologici esula da questa trattazione.

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.

 

 

Ecco il codice dello script:

% Creo un'immagine in bianco e nero all'interno di Matlab

clear;

immagine = zeros(250,250);

immagine(50:150, 50:100) = 1;

immagine(150:200, 50:200) = 1;

immagine(50:150, 150:200) = 1;

% Prima applicazione ('caso A') di operatori morfologici, in realtà doppia: un passo di erosione con elemento strutturante di forma rettangolare seguito da un passo di dilatazione con elemento strutturante di forma circolare

matrice1c = ones(52, 51);

elementoStrutturante1a = strel('arbitrary', matrice1c);

casoAprimoPasso = imerode(immagine, elementoStrutturante1a);

elementoStrutturante2a = strel('disk', 15);

casoAsecondoPasso = imdilate(casoAprimoPasso, elementoStrutturante2a);

% Seconda applicazione ('caso B') di operatori morfologici, anche questa doppia: dilatazione con elemento circolare seguita da chiusura con elemento circolare

elementoStrutturante1b = strel('disk', 10);

casoBprimoPasso = imdilate(immagine, elementoStrutturante1b);

elementoStrutturante2b = strel('disk', 15);

casoBsecondoPasso = imclose(casoBprimoPasso, elementoStrutturante2b);

% Mostro a video l'immagine originale e i risultati ottenuti, mostrando anche i passaggi intermedi (primo e secondo passo, per entrambi i casi, un caso per riga)

subplot(2,3,1);    imshow(immagine);

subplot(2,3,2);    imshow(casoAprimoPasso);

subplot(2,3,3);    imshow(casoAsecondoPasso);

subplot(2,3,4);    imshow(immagine);

subplot(2,3,5);    imshow(casoBprimoPasso);

subplot(2,3,6);    imshow(casoBsecondoPasso);

Bye !

Tags:     tutorial      matlab      script      scripting      elaborazione      immagini digitali      elementi strutturali      operatori morfologici      modificare immagini
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