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.
