How can I write a raw double precision image to disk?
显示 更早的评论
I have a double precision image with small values and a very small dynamic range. I want to write this image to disk "as is": if I change it to the interval [0 255] the image is quantized and all the information is lost.
How can I write the image just the way it is stored in memory? By the way, using MATLAB's save is not a real option, I want to write a raw image.
采纳的回答
更多回答(2 个)
Ali Can ARIK
2011-6-28
You can write the image on the disk as if writing a double precision array. However the image cannot be viewed by any image display tool, it can only be read again in Matlab.
filename = 'image.dat';
x = magic(5);
fid = fopen(filename,'w');
fwrite(fid,x);
fclose(fid);
% Following reads the file back into Matlab.
fid = fopen(filename,'r');
x_read = fread(fid);
fclose(fid);
Hope this is what you're looking for.
2 个评论
David Young
2011-6-28
If the intention is to read it again in MATLAB, why not just use save and load?
Ali Can ARIK
2011-6-28
Good point. It makes it possible to read it using another programming language though and this is why I thought it would be useful.
Bjorn's solution above is actually what Michael needs imo.
Peter Manley-Cooke
2011-6-28
0 个投票
Could you not expand the dynamic range before quantization and shrink it again when the image is re-loaded?
类别
在 帮助中心 和 File Exchange 中查找有关 Image Arithmetic 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!