MATLAB: Write (save) an image file

image processing

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)

Best Answer

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');