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?
Best Answer