SSIM 的 Python 实现算是图像里蛮实用的一招,是在做压缩、超分、去噪那类质量对比的时候,效果直观。
用起来也不麻烦,scikit-image里的structural_similarity
函数挺好用,配合imageio就能快速算出两张图的相似度值。
你只要装好库:
pip install scikit-image imageio
读图、转灰度、对齐尺寸,一行代码就能出结果:
ssim_value = measure.structural_similarity(image1, image2, multichannel=False)
这值范围在-1 到 1 之间,越接近 1 就越像。对了,如果你是彩色图,multichannel=True
别忘了。
SSIM 背后的数学原理也不复杂,主要考虑了亮度、对比度和结构信息,相比 PSNR 之类的老方法,更贴近人眼视觉。想深入的可以看看公式部分。
对了,我还翻了个叫pyssim-master
的源码包,里面貌似还有自定义实现,适合你想研究优化或改成自己的模块。
如果你是做图像压缩、传输质量评估或者搞图像增强算法的,这方法真的挺适合。