Multi-Scale Structural Similarity

Full-Reference Quality Metrics


The Multi-Scale Structural Similarity (MS-SSIM) metric extends the SSIM index by combining luminance information at the highest resolution level with texture and contrast information at multiple downscaled resolutions or scales. The different scales account for the variability in the perception of image detail caused by factors such as the viewing distance to the image, the distance between the scene and the sensor, and the resolution of the image capture sensor.


When an image has maximal pixel differences , the MS-SSIM equals zero. As image differences decreases, its value increases.


The smaller der MS-SSIM values the greater the difference between the pixels.

The MS-SSIM can only be calculated for gray scale images. However, if you use RGB image most implementations will treat each channel as an unique gray scale image.

Only images showing the same scene should be compared.


Images from a traffic surveillance camera in Germany is used to show the MS-SSIM results.

Reference Image


The global MS-SSIM score is for the R: 0.768 G: 0.778 B: 0.785


The global MS-SSIM score is for the R: 0.887 G: 0.892 B: 0.893


Tools and Libraries


In Python the package sewar contains multiple image quality metrics. One of them is the MS-SSIM.

Install package:

pip install sewar

Calculate MS-SSIM:

from sewar.full_ref import msssim
from PIL import Image

img1 ='Reference_Image.png')
img2 ='Image_Dark.png')


Within the MATLAB Image Processing Toolbox a function to calculate the MS-SSIM exists:

ref = imread('Reference_Image.png');
dark = imread('Image_Dark.png');
sun = imread('Image_Sunshine.png');

score = multissim(dark,ref)
fprintf('\nThe MS-SSIM score for the dark image %0.4f\n', score);

score = multissim(dark,ref)
fprintf('\nThe MS-SSIM score for the sunny image %0.4f\n', score);

A detailed description can be found at the Mathworks Website.