Save SSIM index output

I have 2 images (A,B) that i want to compare using the SSIM Index. I am using the command
[ssimval, ssimmap] = ssim(A,B);
imshow(ssimmap,[])
When i plot ssimmap i can see the different structures. When i save the ssimmap and then read the image:
imwrite(ssimmap,'test.jp2','Mode','lossless')
NewImage=imread('test.jp2')
When i plot 'NewImage' it looks all flat, it is different than 'ssimmap'. Is there something different about 'ssimmap' that it has to be saved in a special way? I want to be able to save ssimmap as an output file.

 Accepted Answer

%Try
[ssimval, ssimmap]=ssim(A,B);
imshow(ssimmap,[]);
saveas(gcf,'test.jpg');
NewImage=imread('test.jpg');

2 Comments

Thank you! It works really well. The only problem is the 'NewImage' has an added white border around it (the ssimmap does not have that), do you know if this is a feature of the 'saveas' or it can be removed? I usually use imwrite and i never have this issue. Thank you again.
saveas() saves the whole figure. Use imwrite to save just the image
imwrite(ssimmap, 'ssimmap.png');

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!