Save file.bmp from a matrix.
37 views (last 30 days)
Show older comments
Michele Vanini
on 19 Apr 2021
Answered: Image Analyst
on 19 Apr 2021
Dear all,
I am quite new in Matlab and I am eperiencing some issue by saving a matrix as an image.
I have a matrix (202 x 134 double) composed of 0 and 1. I want to generate a black and white image from that.
If used: imshow(mymat), and I save the file from that it is perfect; but I have to save images within a loop.
I tried to use:
imwrite(mymat,sprintf('FIG%d.bmp',z1))%,'Quality',100)
But the quality of the image is very very low as you can see from the attached pictured.
I tried also to use:
image = mat2gray(mymat,[0 1]);
imwrite(image,sprintf('FIG%d.bmp',z1))
But I get the same result.
Thanks in advance.
4 Comments
Rik
on 19 Apr 2021
How did you get the idea you have a 202x134 matrix? Nothing so far indicates that. Using a different function will not fix anything if your input data is not what you expect.
Accepted Answer
Image Analyst
on 19 Apr 2021
In your code, you save the image as JPEG - that's probably why it's blurry. Never use JPG for image analysis.
%save image as jpeg
imwrite(image_rotated,sprintf('FIG%d.jpeg',z1),'Quality',100); % will create FIG1, FIG2,...
Cast it to uint8 and Save it as PNG and it should be fine.
% Save image as PNG.
baseFileName = sprintf('FIG%d.PNG', z1);
fullFileName = fullfile(pwd, baseFileName);
fprintf('Saving image file : "%s".\n', fullFileName);
imwrite(uint8(image_rotated), fullFileName); % Will create FIG1, FIG2,...
fprintf('Success! Done saving image file.\n')
The saved/recalled image will be the same size as image_rotated.
Dont' use image as the name of a variable since that's the name of a built-in function.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!