Problem with imwrite a color image

24 ビュー (過去 30 日間)
Angela
Angela 2018 年 8 月 14 日
コメント済み: Angela 2018 年 8 月 16 日
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 件のコメント
Image Analyst
Image Analyst 2018 年 8 月 14 日
I don't think you tried my code below, which DOES work.
Angela
Angela 2018 年 8 月 14 日
Thank you for your answer. Please see below my comment underneath your answer. Although the code you suggested works and saves an image as an jp2, what i want is an image saved as jpg (or png) because jp2 images can not be opened by ImageMagick or Gimp.Thank you.

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2018 年 8 月 14 日
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 8 月 15 日
編集済み: Walter Roberson 2018 年 8 月 15 日
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
Angela
Angela 2018 年 8 月 16 日
Thank you. The png worked but unfortunately the jpg still needed the bitdepth. I tried to use the 'Quality' switch but it also did not seem to have saved a smaller image. So for now i went the dual route with png and a jpg with a 'lossy' option.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2018 年 8 月 14 日
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 8 月 16 日
.. So write two copies of the image like I suggested, one archive quality and the other reduced bit depth for speed.
Angela
Angela 2018 年 8 月 16 日
Thank you for your help Walter Roberson, that is what i ended up doing.

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by