[?] Subscribe To This Site

# RGB images -  an introduction to image processing algorithms

We’ll show some basic ideas on RGB images (or image processing in Matlab). These concepts are fundamental and don’t require any special toolbox.

An image in Matlab is a matrix m x n containing colors to be displayed. The colors have to be defined in a color map, which is another matrix. A color map matrix may have any number of rows, but it must have exactly three columns.

Each row is interpreted as a color, with the first element specifying the intensity of red light, the second green, and the third blue (that’s why it’s called an RGB image or matrix).  Color intensity can be specified on the interval 0.0 to 1.0.

### First experiment: define some colors and show them

% We can define an arbitrary group of colors to be used
colors1 = [
0 0 0
% First element = black
0 0 1   % blue
0 1 0   % green
0 1 1   % cyan
1 0 0   % red
1 0 1   % purple
1 1 0   % yellow
1 1 1]; % Last element = white

% We prepare the matrix that contains the colors to be displayed
% The list refers to the number of the elements in the color list

w = [1 2 3 4 5 6 7 8];

% We use the 'colormap' function to define the actual
% palette in our workspace

colormap(colors1)

% We use the 'image' instruction to display the matrix
image(w)

% We don't want to show values along the axes, for the moment
axis off

This is the image produced

### Second experiment: define random colors and display them (5 times)

Press any key (or click the mouse) to change the colors to be visualized...

w = [1 2 3 4 5 6 7 8];
for i = 1 : 5
colors2 = rand(8,3);
colormap(colors2)
image(w)
axis
off
disp('Press any key to continue...')
waitforbuttonpress

end

These could be two of the five images. Since they are random colors, you’ll get different results.

### Third experiment: display predefined color palettes

% There are some color palettes already defined
colors3 = {'hot' 'cool' 'jet' 'hsv' 'flag'};
for i = 1 : 5

% We get the predefined palettes (one at a time)
colormap (colors3{i})

% We create the matrix to be shown, with 64 different           % elements
w = 1 : 64;

% Display the image
image(w)

% Use the names of the different color groups as a title
title(colors3{i})
axis
off
waitforbuttonpress
end

These are two of the palettes:

Now, the interesting part is that we can process images by either modifying the color palette or modifying the appropriate element(s) in the matrix to be displayed.

In this example, we change the image by just changing the matrix w

colormap hot
w = 1:4:64;
subplot(2, 1, 1); image(w); axis
off

w = fliplr(w);
subplot(2, 1, 2); image(w); axis
off

This is the graphic result:

From 'RGB images' to home

From 'RGB images' to 'Matlab programming'

Sitemap