Trovare i vertici di una figura geometrica con MATLAB.

Giocando ancora, mi è venuta voglia di trovare i vertici di una figura geometrica contenuta in una immagine in scala di grigi.

Per semplicità vorrò trovare i vertici di un rettangolo bianco su uno sfondo nero (ma è banale lavorare con una scala di grigi o direttamente a colori). La potenza di MATLAB ci permette di non usare neanche un ciclo per scansionare la matrice.

% Creo la base della mia immagine 512x512

im=zeros(512,512);

% Posiziono un rettangolo in una zona qualsiasi dell'immagine

im(60:284,90:426)=1;

% Ho riempito quell'area di bianco, adesso voglio trovare i vertici

[m n]=find(im==1);

% Attraverso il find ho salvato le coordinate di tutti i pixel bianchi

minX=min(m);
minY=min(n);
maxX=max(m);
maxY=max(n);

% Sfrutto min() e max() per trovare il valore minimo e massimo di X e Y

a=[minX;minY];
b=[maxX;minY];
c=[maxX;maxY];
d=[minX;maxY];

% Se consideriamo i vertici partendo dall'alto a sinistra e scorrendoli
% in senso orario, ecco le nostre coordinate! 🙂
% Basta richiamare le variabili per verificarlo...

Semplice e rapido! 🙂

Emanuele

2 commenti » Scrivi un commento

Lascia un commento

I campi richiesti sono marcati con *.


Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.