Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the following colon (:) mean in MATLAB syntax?

a = imread('autumn.tif');
a = double(a); 
[row col dim] = size(a);
red = a(:, :, 1);
green = a(:, :, 2);
blue = a(:, :, 3);

What does the colon : in the last three lines mean? (The above snippet is from "Image Processing" by Dhananjay Theckedath.)

like image 357
missingfaktor Avatar asked Oct 17 '10 20:10

missingfaktor


1 Answers

:, in this context means 'all'.

red = a(:,:,1)

is equivalent to

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

where end is automatically replaced by the number of elements in the respective dimension by Matlab.

So if a is a 23-by-55-by-3 array,

a(:,:,1) 

is

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

That means, this takes all rows, all columns from the first 'plane' of a. Since a RGB image is composed of a red, green, and a blue plane (in this order), a(:,:,1) is the red component of the image.

like image 99
Jonas Avatar answered Sep 24 '22 06:09

Jonas