Main Content

Display Separated Color Channels of RGB Image

This example creates a simple RGB image and then separates the color channels. The example displays each color channel as a grayscale intensity image and as a color image.

Create an RGB image with uninterrupted areas of red, green, and blue. Display the image.

imSize = 200;
RGB = reshape(ones(imSize,1)*reshape(jet(imSize),1,imSize*3),[imSize,imSize,3]);
imshow(RGB)
title('Original RGB Image')

Figure contains an axes object. The hidden axes object with title Original RGB Image contains an object of type image.

Separate the three color channels.

[R,G,B] = imsplit(RGB);

Display a grayscale representation of each color channel. Notice that each separated color plane in the figure contains an area of white. The white corresponds to the highest values (purest shades) of each separate color. For example, in the red channel image, the white represents the highest concentration of pure red values. As red becomes mixed with green or blue, gray pixels appear. The black region in the image shows pixel values that contain no red values, in other words, when R == 0.

figure
subplot(1,3,1)
imshow(R)
title('Red Channel')

subplot(1,3,2)
imshow(G)
title('Green Channel')

subplot(1,3,3)
imshow(B)
title('Blue Channel')

Figure contains 3 axes objects. Hidden axes object 1 with title Red Channel contains an object of type image. Hidden axes object 2 with title Green Channel contains an object of type image. Hidden axes object 3 with title Blue Channel contains an object of type image.

Display a color representation of each color channel. In these images, the desired color channel maintains its original intensity values and pixel values in the other two color channels are set to 0.

Create an all-black channel.

allBlack = zeros(size(RGB,1,2),class(RGB));
justR = cat(3,R,allBlack,allBlack);
justG = cat(3,allBlack,G,allBlack);
justB = cat(3,allBlack,allBlack,B);

Display all the channels in a montage.

figure
montage({justR,justG,justB},'Size',[1 3], ...
    "BackgroundColor",'w',"BorderSize",10);
title('Color Representation of the Red, Green, and Blue Color Channels');

Figure contains an axes object. The hidden axes object with title Color Representation of the Red, Green, and Blue Color Channels contains an object of type image.

See Also

Related Topics