what is the difference between these two types of rgb matlab code ?
1 view (last 30 days)
namita chandrakar on 18 Nov 2014
i have a 3D color image , when i use a matlab code as below
R=x(:,:,1); % red
G=I(:,:,2); % green
figure, imshow (R);
it display grayscale image. and if i use the code given below
% Red channel only
im_red = im;
im_green = im;
im_blue = im;
im_red(:,:,2) = 0;
im_red(:,:,3) = 0;
it display red color image.
i need help in undestanding difference between these codes ?
Ken Atwell on 18 Nov 2014
In the first case, R is not a 3-D image, but a 2-D image, which MATLAB will display as grayscale. You created R as 2-D when you indexed in the red-only portion of the images in your statement:
>> R=x(:,:,1); % red
In the second case, im_red is a 3-D image, It begins as identical to 'im', but then you set both the green and blue planes to zeros with:
>> im_red(:,:,2) = 0;
>> im_red(:,:,3) = 0;
Look at the dimensions of your matrices in the Variable window as you execute these command one-by-one, and I believe you will be able to follow along with what is happening.