How to read a raw format image data into a matrix??
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have the following old program for reading image into a matrix. But it is not working with new version Matlab.
How to modify this code?? Thanks!
x=zeros(512,512);
fid=fopen('d:\research\usc512\lenna','rb');
if(fid==-1)
error('Error!');
end
for i=1:512
x(i,:)=fscanf(fid,'%c',512);
end
fclose(fid);
0 Kommentare
Antworten (1)
Walter Roberson
am 2 Dez. 2015
That code is valid, if a bit wasteful. It does, though, look for a file d:\research\usc512\lenna that has no file extension, which is unusual in MS Windows. Windows Explorer by default hides file extensions but you can ask to reveal them. I suspect that you will find that the file does have an extension; if so then it needs to be specified in the fopen()
[filename, filepath] = uigetfile('d:\research\usc512', 'Select a file');
fullname = fullfile(filepath, filename);
fid = fopen(fullname, 'rb');
x = fread(fid, [512, 512], 'uint8=>double').' ; %careful, it goes down columns first
fclose(fid);
3 Kommentare
Walter Roberson
am 2 Dez. 2015
Bearbeitet: Walter Roberson
am 2 Dez. 2015
I read in lena.jpg and wrote out lenna (no file extension) from it using fwrite(). I then used the code you indicate to read it back in, changing only the path to the file. It works for me and produces an input identical to the original.
Which MATLAB version are you using, and which version of MS Windows?
Did you experiment with the code I posted?
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!