Spyder ECG Solution

How to calculate the Structural Similarity Index (SSIM) between two images with Python

Look at this article in other language

The Structural Similarity Index (SSIM) is just a perceptual metric that quantifies the image quality degradation that is brought on by processing such as for instance information compression or by losings in information transmission. This metric is simply a complete reference that needs 2 pictures through the exact exact same shot, this implies 2 graphically identical pictures towards the eye that is human. The 2nd image generally speaking is https://essay-writing.org/research-paper-writing/ compressed or has an unusual quality, that is the aim of this index. SSIM is normally found in the video clip industry, but has also a strong application in photography. SIM really steps the difference that is perceptual two comparable pictures. It cannot judge which of this two is way better: that really must be inferred from knowing which can be the one that is original that has been confronted with extra processing such as for instance compression or filters.

In this essay, we shall explain to you simple tips to compute this index between 2 pictures making use of Python.


To check out this guide you will require:

  • Python 3
  • PIP 3

That being said, allow’s begin !

1. Install Python dependencies

Before applying the logic, it is important to install some crucial tools that is supposed to be utilized by the logic. This tools may be installed through PIP aided by the after demand:

These tools are:

  • scikitimage: scikit-image is an accumulation of algorithms for image processing.
  • opencv: OpenCV is really a library that is highly optimized consider real-time applications.
  • imutils: a few convenience functions to produce basic image processing functions such as for instance interpretation, rotation, resizing, skeletonization, showing Matplotlib images, sorting contours, detecting sides, and a lot more easier with OpenCV and both Python 2.7 and Python 3.

This guide will work with any platform where Python works (Ubuntu/Windows/Mac).

2. Write script

The logic to compare the pictures could be the after one. Making use of the compare_ssim way of the measure module of Skimage. This technique computes the mean structural similarity index between two images. It receives as arguments:

X, Y: ndarray

Pictures of Any dimensionality.

win_size: int or None

The side-length of this sliding screen found in comparison. Needs to be a value that is odd. If gaussian_weights holds true, this is certainly ignored as well as the window size shall be determined by sigma.

gradientbool, optional

If real, additionally get back the gradient with regards to Y.

data_rangefloat, optional

The information array of the input image (distance between minimal and maximum feasible values). By standard, it is predicted through the image data-type.

multichannelbool, optional

If True, treat the final measurement associated with array as networks. Similarity calculations are done separately for every channel then averaged.

gaussian_weightsbool, optional

If real, each area has its mean and variance spatially weighted by way of A gaussian kernel that is normalized of sigma=1.5.

fullbool, optional

If real, also get back the entire structural similarity image.


The mean similarity that is structural the image.


The gradient of this structural similarity index between X and Y [2]. That is just came back if gradient is placed to real.


The complete SSIM image. This will be just returned if complete is defined to real.

As first, we’re going to browse the pictures with CV through the supplied arguments and then we’ll use a black colored and filter that is whitegrayscale) and then we’ll apply the mentioned logic to those images. Produce the script that is following script.py and paste the logic that is following the file:

This script will be based upon the rule posted by @mostafaGwely with this repository at Github. The rule follows precisely the exact same logic declared in the repository, nonetheless it eliminates a mistake of printing the Thresh of the pictures. The production of operating the script using the pictures using the following command:

Will create the output that is followingthe demand when you look at the image utilizes the quick argument description -f as –first and -s as –second ):

The algorithm will print a sequence specifically “SSIM: $value”, you could change it out while you want. In the event that you compare 2 precise pictures, the value of SSIM ought to be demonstrably 1.0.

Leave a Comment

Your email address will not be published. Required fields are marked *