how can i creat image from data?

hi I'm beginner in matlab my problem is how to get image.i have text data (row,col) and i want to create image from this data, and this image should be like fringes (dark and white line)

Answers (2)

Farouk Moukaddem
Farouk Moukaddem on 26 Aug 2016
Hi,
Refer to the following documentation link for the "mat2gray" command that is used to convert a matrix to a grayscale image:
You will also find an example in the above link that will help you get started with Image Processing applications.
Best,
Farouk

1 Comment

Hi sir Thanks for replying but I have data not image according to your link I should read the image for my case I didn't have ,I got results and that's results is text file contain four cols (r,theta,phi,intensity) and I should generate image like sphere (like ball) Thanks

Sign in to comment.

Try this (untested):
% In advance, read your text data into three vectors,
% rows and columns and grayLevels. Then...
lastRow = max(rows);
lastCol = max(columns);
grayImage = zeros(lastRow, lastCol, 'uint8');
for k = 1 : length(rows)
grayImage(rows(k), columns(k)) = grayLevels(k);
end
This assumes that rows and columns are integers.

4 Comments

Sanaa
Sanaa on 26 Aug 2016
Edited: Sanaa on 26 Aug 2016
hi i read my data like this and this is my code
clc
clear;
fid = fopen('fort (1).130');
tline = fgets(fid);
out=[];
while ischar(tline)
a=sscanf(tline,' The Time-averaged Poyntine vector(W/m*m) at point: %f');
tline = fgets(fid);
[b c]=sscanf(tline,'%f %f');
tline = fgets(fid);
[d]=sscanf(tline,' Psca %f');
tline = fgets(fid);
out=[out;a b(1) b(2) d];
end
fclose(fid);
% load ('out.mat')
r= out(:,1);
theta= out(:,2);
phi= out(:,3);
I= out(:,4);
theta_new=theta.*180./pi;
r_new=ones(size(theta_new));
[X,Y] = meshgrid(theta_new,phi);
[X,Y,Z]=sph2cart(theta_new,phi,r_new);
% tri = delaunay(x,y);
% trisurf(tri,x,y,z)
surf(X,Y,Z,I);
Image Analyst
Image Analyst on 26 Aug 2016
Edited: Image Analyst on 26 Aug 2016
There is no question in your response. Should there be? Or did I answer your question successfully?
And THIS LINK and attach your data file if you want us to try to run your code.
I tried also this code but it isn't work,
clc
clear;
fid = fopen('fort (1).130');
tline = fgets(fid);
out=[];
while ischar(tline)
a=sscanf(tline,' The Time-averaged Poyntine vector(W/m*m) at point: %f');
tline = fgets(fid);
[b c]=sscanf(tline,'%f %f');
tline = fgets(fid);
[d]=sscanf(tline,' Psca %f');
tline = fgets(fid);
out=[out;a b(1) b(2) d];
end
fclose(fid);
% load ('out.mat')
r= out(:,1);
theta= out(:,2);
phi= out(:,3);
I= out(:,4);
theta_new=theta.*180./pi;
for i=1:length(theta_new)
r_a=r(i);
theta_new_a=theta_new(i);
phi_a=phi(i);
x = r(i) .* cos(phi(i)) .* cos(theta_new(i));
y = r(i) .* cos(phi(i)) .* sin(theta_new(i));
% z = r_a .* sin(phi_a);
I(x,y)=I(i);
% x = rcosthetasinphi
% y = rsinthetasinphi
% z = rcosphi.
%
%
end
I=uint8(I);
imshow(I)
I think you overlooked the last line of my answer. Here it is again:
And THIS LINK and attach your data file if you want us to try to run your code.
Not really sure why you did not attach your data -- did you just forget, or am I to just assume that you don't want us to run your code with your data?

Sign in to comment.

Asked:

on 22 Aug 2016

Commented:

on 26 Aug 2016

Community Treasure Hunt

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

Start Hunting!