I forgot to say that the starting matrix is made of noninteger values.
Save an image from a matrix
213 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Federico Fioretti
le 4 Jan 2022
Réponse apportée : Image Analyst
le 9 Jan 2022
Hi. I have a matrix of data type double in matlab. I have to save this matrix as an image in .jpg or .png format, but when i try to save it, the image saved is completely white. I would like the saved image to have a specific colormap as a function of the values of the starting matrix. How can i do? thanks in advance
1 commentaire
Réponse acceptée
Turlough Hughes
le 4 Jan 2022
Here's one way - convert to an 8 bit array with values between 0 and 255 and then save:
I2 = 255*(I - min(I(:))) ./ (max(I(:)) - min(I(:))); %scale values between 0 and 255
I2 = cast(I2,'uint8');
imwrite(I2,'myImage.png')
1 commentaire
Plus de réponses (1)
Image Analyst
le 9 Jan 2022
To save a floating point image as a TIFF format file:
% Create floating point image.
rgbImage = rand (10, 20, 3);
% Image must be single precision.
rgbImage = single(rgbImage);
% Display it.
imshow(rgbImage, 'InitialMagnification', 1000)
axis('on', 'image');
% Create tiff object.
fileName = '_floatingPointImage.tif';
tiffObject = Tiff(fileName, 'w')
% Set tags.
tagstruct.ImageLength = size(rgbImage,1);
tagstruct.ImageWidth = size(rgbImage,2);
tagstruct.Compression = Tiff.Compression.None;
tagstruct.SampleFormat = Tiff.SampleFormat.IEEEFP;
tagstruct.Photometric = Tiff.Photometric.MinIsBlack;
tagstruct.BitsPerSample = 32;
tagstruct.SamplesPerPixel = size(rgbImage,3);
tagstruct.PlanarConfiguration = Tiff.PlanarConfiguration.Chunky;
tiffObject.setTag(tagstruct);
% Write the array to disk.
tiffObject.write(rgbImage);
tiffObject.close;
% Recall image.
m2 = imread(fileName)
% Check that it's the same as what we wrote out.
maxDiff = max(max(m2-rgbImage)) % Should be zero.
0 commentaires
Voir également
Catégories
En savoir plus sur Import, Export, and Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!