2010-10-17 23 views
6
a = imread('autumn.tif'); 
a = double(a); 
[row col dim] = size(a); 
red = a(:, :, 1); 
green = a(:, :, 2); 
blue = a(:, :, 3); 

Che cosa significano i due punti : nelle ultime tre righe? (Il frammento di cui sopra è da "Image Processing" di Dhananjay Theckedath.)Che cosa significano i seguenti due punti (:) nella sintassi MATLAB?

+2

Prova a digitare "MATLAB Guida Colon" con google e verrai direttamente alla pagina che lo descrive (l'aiuto di MATLAB è molto buono!) Http://www.mathworks.com/help/techdoc/ref/colon.html – Mikhail

+0

@ Mikhail: Grazie. :) – missingfaktor

risposta

19

:, in questo contesto significa "tutto".

red = a(:,:,1) 

è equivalente a

red = a(1:end,1:end,1) 

dove end è sostituito automaticamente per il numero di elementi nella rispettiva dimensione tramite Matlab.

Quindi se a è una matrice 23-by-55-by-3,

a(:,:,1) 

è

a(1:23, 1:55, 1) 

Ciò significa, questo richiede tutte le righe, tutte le colonne dal primo aereo' 'di a. Poiché un'immagine RGB è composta da un rosso, verde e blu plane (in questo ordine), a(:,:,1) è il componente rosso dell'immagine.

+0

Non capisco neanche quest'ultima sintassi. :( – missingfaktor

+0

@missingfactor: meglio ora? – Jonas

+0

Ok, ho capito, grazie mille! :-) – missingfaktor

Problemi correlati