Om Sao
Om Sao

Reputation: 7663

ImportError: cannot import name 'structural_similarity' error

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'

Upvotes: 39

Views: 41642

Answers (4)

Andrew Hryvachevskyi
Andrew Hryvachevskyi

Reputation: 115

I use next solution:

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

Upvotes: 1

Samantha Garcia
Samantha Garcia

Reputation: 510

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

Upvotes: 26

Kim Changbae
Kim Changbae

Reputation: 271

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.

Upvotes: 27

Om Sao
Om Sao

Reputation: 7663

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.

Upvotes: 70

Related Questions