Author Topic: Indexed image in Matlab  (Read 1806 times)

Pooja Pandey

  • Team tributary
  • *
  • Karma: +0/-0
    • View Profile
  • Institute : NIT Rourkela
  • Programming language : Matlab, C++
Indexed image in Matlab
« on: May 09, 2017, 12:37:47 PM »
I am trying to use an indexed image in matlab and for reading the same, used the command
[x, map]=imread('data2.tiff');
I am new to matlab, want to use the x or cdata in my script. Please let me know how to load the same.

Karthikeyan L

  • Administrator
  • Team river
  • ***
  • Karma: +34/-0
  • Research Scholar
    • View Profile
  • Institute : Indian Institute of Science, Bangalore
  • Programming language : Matlab, R
Re: Indexed image in Matlab
« Reply #1 on: May 10, 2017, 10:23:00 AM »
An indexed image is useful to represent the image which has limited number of colors in it so as to reduce the space consumption (of the image). As the name suggests, an indexed image is a matrix of indexes with each number pointing to the color in the colormap matrix.

Say you have an image with only three colors red, green and blue and no other color, its indexed image X (assuming it to be a 4x4 matrix image) could look something like this:
Code: [Select]
X=[3,2,2,1;1,3,1,2;1,2,1,2];And the corresponding colormap matrix will be:
Code: [Select]
map=[1,0,0;0,1,0;0,0,1];Here map will be 3x3 matrix with rows indicating number of colors (which is three in this example) and columns indicating R,G,B (the numbers will be varying between [0,1]).
For example, 3 in X simply points to 3rd row in map matrix and takes its corresponding color (which is blue).

Once you obtain index and colormap from an image, you can use them to get an RGB image by using ind2rgb
 (http://in.mathworks.com/help/matlab/ref/ind2rgb.html) command. This command simply maps indexes to the colormap matrix and creates a 3D matrix where the third dimension contains the RGB colors. You can run following lines in matlab for better understanding:

Code: [Select]
[X,map] = imread('corn.tif');
RGB = ind2rgb(X,map);
imagesc(RGB);

Pooja Pandey

  • Team tributary
  • *
  • Karma: +0/-0
    • View Profile
  • Institute : NIT Rourkela
  • Programming language : Matlab, C++
Re: Indexed image in Matlab
« Reply #2 on: May 11, 2017, 10:03:28 AM »
could you please send me an example where an indexed image is used

Karthikeyan L

  • Administrator
  • Team river
  • ***
  • Karma: +34/-0
  • Research Scholar
    • View Profile
  • Institute : Indian Institute of Science, Bangalore
  • Programming language : Matlab, R
Re: Indexed image in Matlab
« Reply #3 on: May 11, 2017, 11:48:36 AM »
The example that I have given towards the end is for the indexed image. 'corn.tif' is an indexed image.

Pooja Pandey

  • Team tributary
  • *
  • Karma: +0/-0
    • View Profile
  • Institute : NIT Rourkela
  • Programming language : Matlab, C++
Re: Indexed image in Matlab
« Reply #4 on: May 11, 2017, 12:13:03 PM »
when I am trying to use the cdata in the code, programme couldn't read the values,it's reading number of rows and columns.