首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于图像比较的SSIM :图像形状问题

用于图像比较的SSIM :图像形状问题
EN

Stack Overflow用户
提问于 2020-03-12 18:57:23
回答 1查看 1.1K关注 0票数 3

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

如果我将我的图像塑造为(256*256,3),我得到:

代码语言:javascript
复制
    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):

代码语言:javascript
复制
    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

这两个结果中哪一个是正确的,为什么?文档没有提到任何关于它的内容,因为它可能是一个概念性的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-12 19:08:00

第二个是正确的,假设你有一个方形的图像,而不是一个很长很薄的图像。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60660310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档