write (save) an image file

i had a .mha file, i used the below two lines to display the image and i get the first full image as in the link below....
V = mha_read_volume('BRATS_HG0001_truth.mha');
imshow(squeeze(V(:,:,round(end/2))),[]);
please can someone help me how to save that image to a jpg or bmp or tiff file....
i tried
imwrite(squeeze(V(:,:,round(end/2))),'filename.bmp')
but i'm not getting the image... i get the outline of the image as shown in link (image(b))... what should i do to save as image(a)

 采纳的回答

Notice that when you call imshow you are providing the [] second parameter. That tells imshow() to effectively shift and scale the data so that it runs between 0 and 1. You can do the same tranformation:
newimage = squeeze(V(:,:,round(end/2)));
minimage = min(newimage(:));
maximage = max(newimage(:));
scaledimage = (newimage - minimage) ./ (maximage - minimage);
imwrite(scaledimage, 'filename.bmp');

4 个评论

sir when i did so i got the below error
??? Error using ==> writebmp at 16
Class of X must be logical, uint8, single, or double.
Error in ==> imwrite at 431
feval(fmt_s.write, data, map, filename, paramPairs{:});
Error in ==> Demo at 10
imwrite(scaledimage, 'filename.bmp');
so i edited the line to
scaledimage = uint8((newimage - minimage) ./ (maximage - minimage));
but that time when i write i get a fully black image and nothing else....
how to correct the above error....
Try casting everything to double to do the math, then cast back to uint8 inside the call to imwrite().
now it worked... thank you Walter Roberson and Image Analyst for your help....
i am also getting the same black image. can you tell me this code? plzzz i need this urgent

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by