make a picture from excel file with MATLAB

hi all, i have excel file which in it, there is a shape of something that specify with numbers, i want to write a code in matlab that make a picture or plot of it , that in it all the cells with same values have a color that i choose, i.e in the picture below , matlab make a picture of a Rectangular, that all cells with value of "nan" be white, and all cells with a value of "20" be red an so on.
thanks so much.

 Risposta accettata

Joseph Cheng
Joseph Cheng il 2 Mar 2015
Modificato: Joseph Cheng il 2 Mar 2015
I would start by using the function xlsread() to read in the specified excel file and the range of where the image is create. Then using the == comparison you can then create the different color layers. example:
[num txt raw] = xlsread(____,____)
raw = cell2mat(raw);
Img(:,:,1) = 20==raw | isnan(raw);
Img(:,:,2) = 30==raw | isnan(raw);
Img(:,:,3) = 40==raw | isnan(raw);

6 Commenti

thanks, is there any way to specify arbitrary color for each value, i mean all 20 be blue and so on. is the Img(:,:,1) mean specific color?
i run this code, but there is something wrong . the error is :
Undefined function 'eq' for input arguments of type 'cell'.
Error in test (line 2)
Img(:,:,1) = {20}==raw | isnan(cell2mat(raw));
what i shoud do ?
images are broken into 3 different color layers (RGB). combinations of values between 0 and 1 for each of the layers cause different colors. so i just gave an example of how you'd read it in and shoot it off to a colored image. If you run with it you'd see that all values 40 will be blue, 30's will be green and 20's be red.
Excuse me, you mean it produce a image with just 3 colors? if i want to produce a image with so many colors , what should i do ? thanks a lot
well what have you tried? you can work with colormaps to define colors like
IMG = raw;
IMG(isnan(IMG))=0;
numcolor = length(unique(IMG(:)));
colors = hsv(numcolor-1);
colors= [1 1 1;colors]; %set value of 0 to be white
imagesc(IMG)
colormap(colors)
what if the image is grayscale ? is the command still the same?

Accedi per commentare.

Più risposte (1)

Shreya Shetty
Shreya Shetty il 26 Lug 2019
Get RGB components from previous excel sheet, display them and retreive original image
[file,Path]=uigetfile('*.xlsx','Select excel file of image matrix '); file=fullfile(Path,file); red=xlsread(file, 'A1:GR200'); green=xlsread(file, 'A201:GR400'); blue=xlsread(file, 'A401:GR600'); figuresubplot(3,2,1); imshow(red,[]); imwrite(uint8(red),'red.jpg'); t1=imread('red.jpg'); title('red channel') subplot(3,2,2); imshow(green,[]); imwrite(uint8(green),'green.jpg'); t2=imread('green.jpg'); title('green channel') subplot(3,2,3); imshow(blue,[]); imwrite(uint8(blue),'blue.jpg'); title('blue channel') t3=imread('blue.jpg'); subplot(3,2,5); im=cat(3, t1, t2, t3); imshow(im) title('retreived image')

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by