czxt3000 2024-12-24 15:26 采纳率: 59.8%
浏览 78
已结题

用SSIM对比明暗不同的图像。

img

img

对比如上两个图像,结构相同,但是明暗不同。用structural_similarity对比,相似度非常低。
怎么解决差异问题?

  • 写回答

33条回答

  • 阿里嘎多学长 2024-12-24 15:26
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    使用 SSIM 对比明暗不同的图像

    你遇到的问题是使用 SSIM (Structural Similarity Index Measure) 对比明暗不同的图像时,相似度非常低。SSIM 是一种常用的图像相似度度量方法,但是它对图像的亮度和对比度非常敏感。

    解决这个问题的一种方法是对图像进行 normalize,例如使用 Min-MaxScaler 或 Z-ScoreNormalization 将图像的亮度和对比度 normalize 到同一个范围内,然后再使用 SSIM 对比。

    Python 代码示例:

    import cv2
    import numpy as np
    
    # 读取图像
    img1 = cv2.imread('img1.jpg')
    img2 = cv2.imread('img2.jpg')
    
    # normalize 图像
    img1_normalized = cv2.normalize(img1, None, 0.0, 1.0, cv2.NORM_MINMAX)
    img2_normalized = cv2.normalize(img2, None, 0.0, 1.0, cv2.NORM_MINMAX)
    
    # 计算 SSIM
    ssim = cv2.SSIM(img1_normalized, img2_normalized)
    print(ssim)
    

    在上面的代码中,我们使用 cv2.normalize 函数对图像进行 normalize,然后使用 cv2.SSIM 函数计算 SSIM。

    另外,你也可以使用其他方法来解决这个问题,例如使用 histogram matching 或 color correction 等。

    希望这个解决方案能够帮助你解决问题。如果你有其他问题,请随时问我。

    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月28日
  • 创建了问题 12月24日