How to convert image (bmp,jpg....) to .bin file ?

33 次查看(过去 30 天)
I have a colour image and I want convert it to binary such as .bin (without losing color). In C code, I can easly use 'fopen' but it can't work in matlab. Anybody help me please.
Sorry my E is not good.
  1 个评论
dao
dao 2014-10-16
编辑:dao 2014-10-16
Thank Geoff Hayes for your help, But how can I read this bin ? I use
fid = fopen('myBin.bin', 'r');
R = fread(r,[626 1124 3],'uint8');
imshow(R)
but fread function doesn't receive Three-dimensional matrix. So how can I convert this .bin file to image ?

请先登录,再进行评论。

采纳的回答

Geoff Hayes
Geoff Hayes 2014-10-15
dao - if you have read the image from file (as a bmp or jpg) using imread, then you can use fopen and fwrite to write the data to a binary file. For example,
% read the image from file
myImage = imread('someImage.jpg');
% open a file to write to
fid = fopen('myBin.bin','w+');
if fid>0
% write the data to file
fwrite(fid,myImage,'uint8');
% close the file
fclose(fid);
end
In the above, we read in some image and open a file for writing (using w+ to indicate that we wish to open or create a new file for writing). It is assumed that the data type for the image is uint8 so we use that in our precision field of the fwrite function.
  4 个评论
dao
dao 2014-10-16
Thank for your help. Can you explain more to me about 'uint8=>uint8' ? I still don't get it
Geoff Hayes
Geoff Hayes 2014-10-16
From fread precision, the left hand side of the => is the source, and the right hand side is the output. So 'uint8=>uint8' means that for every 8 bit unsigned integer that we read in, we save this value as an 8-bit unsigned integer in our R (output) matrix. I did this because without it, R would be a matrix of data type double, since the default precision is 'uint8=>double'.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by