39

In my image comparision code following: https://www.pyimagesearch.com/2014/09/15/python-compare-two-images/

While using from skimage.measure import structural_similarity as ssim

and then s = ssim(imageA, imageB)

I am getting error:

from skimage.measure import structural_similarity as ssim

ImportError: cannot import name 'structural_similarity'

Om Sao
  • 7,064
  • 2
  • 47
  • 61

4 Answers4

69

I found the solution. As this question is unique and not covered anywhere. So, posting the answer.

#from skimage.measure import structural_similarity as ssim
from skimage import measure
.
.
.
#s = ssim(imageA, imageB)
s = measure.compare_ssim(imageA, imageB)

Change commented line to uncommented line.

Om Sao
  • 7,064
  • 2
  • 47
  • 61
27

Please check your skimage version.

https://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.compare_ssim

Changed in version 0.16: This function was renamed from skimage.measure.compare_ssim to skimage.metrics.structural_similarity.

Hope it helps.

CKE
  • 1,533
  • 19
  • 18
  • 29
Kim Changbae
  • 271
  • 3
  • 3
26

change import line to

from skimage.metrics import structural_similarity as ssim

This may work better than using compare_ssim since that is going to be deprecated

Samantha Garcia
  • 490
  • 6
  • 13
1

I use next solution:

from skimage import metrics
metrics.structural_similarity(grayA, grayB, full=True)