gpt4 book ai didi

python - 用于图像比较的 SSIM : issue with image shape

转载 作者:行者123 更新时间:2023-12-04 14:15:36 31 4
gpt4 key购买 nike

我正在计算两个图像之间的结构相似性指数。我不明白维度应该是什么。两个图像(引用和目标)都是 RGB 图像。

如果我将图像整形为 (256*256, 3),我将获得:

    ref = Image.open('path1').convert("RGB")
ref_array = np.array(ref).reshape(256*256, 3)
print(ref_array.shape) # (65536, 3)
img = Image.open('path2').convert("RGB")
img_array = np.array(img).reshape(256*256, 3)
print(img_array.shape) # (65536, 3)

ssim = compare_ssim(ref_array,img_array,multichannel=True,data_range=255)

结果是 0.0786

另一方面,如果我 reshape 为 (256, 256, 3):

    ref = Image.open('path1').convert("RGB")
ref_array = np.array(ref)
print(ref_array.shape) # (256, 256, 3)
img = Image.open('path2').convert("RGB")
img_array = np.array(img)
print(img_array.shape) # (256, 256, 3)

ssim = compare_ssim(ref_array, img_array, multichannel=True, data_range=255)

结果是0.0583

这两个结果中哪个是正确的,为什么?文档对此没有任何说明,因为这可能是一个概念性问题。

最佳答案

第二个是正确的,假设您有一个方形图像而不是一个非常细长的图像。

SSIM 会考虑相邻像素(用于亮度和色度掩蔽和识别结构)。图像可以是任何形状,但如果您告诉算法您的形状是 256*256 x 1 像素的形状,那么垂直结构将不会被考虑在内。

关于python - 用于图像比较的 SSIM : issue with image shape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60660310/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com