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

¿Qué significa la coma : en las últimas tres líneas? (El fragmento de arriba es de "Procesamiento de imagen" por Dhananjay Theckedath.)¿Qué significan los siguientes dos puntos (:) en la sintaxis de MATLAB?

+2

Pruebe escribir 'MATLAB Help Colon' con google y llegará directamente a la página que lo describe (la ayuda de MATLAB es muy buena!) Http://www.mathworks.com/help/techdoc/ref/colon.html – Mikhail

+0

@Mikhail: Gracias. :) – missingfaktor

Respuesta

19

:, en este contexto significa 'todo'.

red = a(:,:,1) 

es equivalente a

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

donde end se sustituye automáticamente por el número de elementos de la dimensión respectiva por Matlab.

Así que si a es una matriz de 23 por 55 por 3,

a(:,:,1) 

es

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

Eso significa, esto se lleva a todas las filas, todas las columnas del primer plano' 'de a. Como una imagen RGB se compone de un rojo, verde y azul plane (en este orden), a(:,:,1) es el componente rojo de la imagen.

+0

No entiendo esa última sintaxis tampoco. :( – missingfaktor

+0

@missingfactor: ¿mejor ahora? – Jonas

+0

Bien, entendido. Muchas gracias! :-) – missingfaktor

Cuestiones relacionadas