Pagina 1 di 1

Image Processing - Matlab

MessaggioInviato: 21 dic 2018, 16:24
da Scib
Buonasera a tutti, vorrei analizzare su matlab due immagini diverse (non tutte, magari solo in un piccolo intervallo di righe e colonne) e verificare se tra le due immagini ci sono elementi simili (oppure stesso numero di pixel con lo stesso valore) qualcuno mi sa indicare un metodo efficace? Esisitono funzioni particolari o algoritmi già realizzati? altrimenti qualcuno mi può consigliare un Algoritmo da realizzare?

Grazie mille e Auguri a tutti.

Re: Image Processing - Matlab

MessaggioInviato: 23 dic 2018, 13:32
da gvee
Una immagine in MATLAB la apri con la funzione imread.
Per esempio, se file.jpg è una immagine nella tua cartella:

Codice: Seleziona tutto
I = imread('file.jpg');


che ritorna una matrice di dimensioni W (width) x H (height) x C (channels) già decodificata.
Le dimensioni le puoi verificare con la funzione size:

Codice: Seleziona tutto
size(I)


Il formato pixel è RGB planar, ció significa che i canali sono separati da un offset W x H (nel caso RGB), e comunque puoi ottenere i canali separatamente con:

Codice: Seleziona tutto
cR = I(:,:,1);
cG = I(:,:,2);
cB = I(:,:,3);


Puoi trattare ogni canale come comuni matrici 2-D.

Rispondendo alla tua domanda:
Scib ha scritto:verificare se tra le due immagini ci sono elementi simili (oppure stesso numero di pixel con lo stesso valore) qualcuno mi sa indicare un metodo efficace? Esisitono funzioni particolari o algoritmi già realizzati?

Dipende un po' da cosa vuoi fare e come.

Se vuoi misurare la correlazione tra le due immagini puoi usare la funzione corr2, che ritorna il coefficiente di correlazione (occhio che MATLAB vuole che gli argomenti siano di dimensioni 2-D, Octave accetta anche che siano 3-D).

Se vuoi fare un confronto pixel a pixel devi scorrere le immagini con un ciclo, oppure sottrarle tra di loro etc.
MATLAB ha di tutto per il signal processing.

O_/