# MATLAB: Extracting the XY + RGB value from an image.

Hello,
I am working on a program to pull the RGB values of a 22×22 gif. I am using this to turn it into a template to use on a LED matrix. I have been searching high and low and think I might be using the wrong wording or where to look.
What I want to accomplish is read a 22×22 gif(Frame by frame if possible), take out each XY and RGB value and put it in output file. I have found these examples that kind of get me where I want to go, but I cant figure out how to bring it home.
I found that I can use imread to upload the gif or image, then I can use something similar too
rgbImage = permute(rgbImage, [3,2,1]);serialValues = rgbImage(:)';
This does not seem to return the information I need or I dont understand how to put it together. This is the example output I am getting
al(:,:,1) =    Columns 1 through 9      0.9922    0.5373    0.0667    0.0667    0.0667    0.0667    0.0667    0.1333    0.4471      0.8275    0.2000    0.0667    0.0667    0.0667    0.0667    0.0667    0.0667    0.0235      0.2471    0.1020    0.0667    0.1333    0.1333    0.1333    0.1333    0.1333    0.4627    Columns 10 through 18      0.1333    0.2980    0.3333    0.7608    0.9961    0.5373    0.0667    0.0667    0.0667      0.0667    0.2902    0.2000    0.1725    0.4275    0.2000    0.0667    0.0667    0.0667      0.2078    0.0157    0.1216    0.0157    0.3059    0.1020    0.1333    0.1333    0.1333    Columns 19 through 22      0.0667    0.0667    0.4275    0.2000      0.0667    0.0667    0.0667    0.0667      0.1333    0.0667    0.1373    0.1333val(:,:,2) =    Columns 1 through 9      0.6314    0.2000    0.0667    0.0667    0.0667    0.0667    0.0667    0.0667    0.1373      0.3059    0.0667    0.0667    0.0667    0.0667    0.0667    0.0667    0.0667    0.1137      0.1176    0.0667    0.1333    0.1333    0.1333    0.1333    0.1333    0.1333    0.3294    Columns 10 through 18      0.2392    0.3176    0.1333    0.6980    1.0000    0.8275    0.2667    0.0667    0.0667      0.0314    0.4196    0.0667    0.4118    0.5529    0.2824    0.0667    0.0667    0.0667      0.4510    0.4235         0    0.4863    0.4431    0.3059    0.0667    0.1333    0.1333    Columns 19 through 22      0.0667    0.2667    0.3333    0.0667      0.0667    0.0667    0.0667    0.0667      0.1333    0.0667    0.0667    0.1333
Which I believe is one value, either the red green or blue. Where are the other values at? I thought it might have been from the image or not getting converted correctly but I even tried this method which I feel did not work.
Read an image and convert it to an RGB image.Read the first image in the sample indexed image file, corn.tif.[X,map] = imread('corn.tif');X is a 415-by-312 array of type uint8.Verify that the colormap, map, is not empty, and convert the data in X to RGB.if ~isempty(map)    Im = ind2rgb(X,map);endView the size and class of X.whos Im  Name        Size                 Bytes  Class     Attributes    Im        415x312x3            3107520  double                X is now a 415-by-312-by-3 array of type double.
I would like it to pull the information, pull all of the RGB colors with X/Y coordinates and then put it into a file to upload into FastLED to light up the specific LEDs I want. Any other help on guiding me to a proper solution is extremely helpful. Also if someone could assist in helping me understand the array of 3,2,1 after the permute, is that column, row and then RGB value?

sourceimage = 'corn.tif';numframes = numel(imfinfo(sourceimage);        %get number of framesfor frame = 1:numframes                        %iterate over the frames  [img, map] = imread(sourceimage, frame);     %read frame  rgbimg = im2uint8(ind2rgb(img, map));        %convert to RGB and to 8-bit integer  crgb = permute(rgbimg, [3, 1, 2]);           %change memory storage from RRR...GGG...BBB... to RGBRGBRGB....  crgb = crgb(:);                              %convert to 1D array.  %...  %your code to pass the crgb array to fastled.   %you can copy the whole crgb array directly into your FastLed led array  %it already has the correct memory layout  %note that the pixels are rearranged by column. So led[2] is the 2nd pixel of the first columnend