【发布时间】:2020-06-24 20:53:09
【问题描述】:
我正在计算两个图像之间的结构相似性指数。我不明白维度应该是什么。两个图像(参考和目标)都是 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。
另一方面,如果我重塑为 (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 是 MSE 的替代方案,用于评估“之前”和“之后”过滤/压缩,因此我认为它不适用于轮换或略有不同的作物。
-
我正在使用 ML 方法进行渲染,因此生成的图像应该看起来像 N 个样本的参考图像 -> inf。用于此任务的 SSIM 通常比 MSE 更可靠。
-
喜欢自动编码器?看起来很低,但如果您刚刚开始训练,可能就是这种情况。
-
不像自动编码器。它是基于物理渲染的 MC 重要性采样的一种变体,其中采样方法基于强化学习。 SSIM 非常低,因为我比较了使用 5120 SSP 生成的参考与 8SPP 的示例(仅作为示例)
-
好吧,这听起来很明智。另一件事,我在 YUV 颜色空间(1 个灰度通道,2 个颜色通道)上使用了 SSIM。 This 问题暗示 RGB 可能会给出不同的值。但是,它“旧”了,我对 SSIM 的体验也不是最近的!
标签: python image image-processing scikit-image