Problem with imwrite a color image
18 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Angela
am 14 Aug. 2018
Kommentiert: Angela
am 16 Aug. 2018
I am trying to save the output color image of a program as a jpg or png file. I have tried
outfile='image.jpg'
imwrite(im2uint16(Image),outfile,'BitDepth',12,'Mode','lossless','Quality',100)
When i tried to open this using Gimp or ImageMagick , the image could not open, it was not recognized. Can anyone suggest the right way to save a color image as a jpg using imwrite? Thank you.
4 Kommentare
Akzeptierte Antwort
Image Analyst
am 14 Aug. 2018
Photoshop doesn't recognize it either. But this works:
rgbImage = imread('peppers.png');
outfile='image.jp2' % JPEG 2000
imwrite(im2uint16(rgbImage),outfile,'Mode','lossless')
And I'd recommend you use PNG rather than JPG or JPEG2000 (jp2).
PNG has pretty much become the widespread de facto standard.
8 Kommentare
Walter Roberson
am 15 Aug. 2018
Bearbeitet: Walter Roberson
am 15 Aug. 2018
writejpg>set_jpeg_props would never be called for file extension .png .
If you go the dual-file route, then
imwrite(im2uint16(rgbImage), 'newimage.png'); %for archive quality
imwrite(im2uint8(rgbImage), 'newimage.jpg'); %for quick access that is not archive quality
Weitere Antworten (1)
Walter Roberson
am 14 Aug. 2018
JPEG does not support 16 bit images. Some JPEG libraries support 12 bit images.
JPEG XR supports 16 bit images, but MATLAB does not support JPEG XR.
8 Kommentare
Walter Roberson
am 16 Aug. 2018
.. So write two copies of the image like I suggested, one archive quality and the other reduced bit depth for speed.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!