Python 中的结构相似性指数(SSIM)(多通道错误)

问题描述 投票:0回答:1

我想计算生成图像和目标图像(从图像数组中随机选取)之间的结构相似性指数(SSIM)。

这是我尝试过的-

from skimage.metrics import structural_similarity as ssim

print(tar_image.shape)
print(gen_image.shape)

ssim_skimg = ssim(tar_image, gen_image,
                  data_range = gen_image.max() - gen_image.min(), 
                  multichannel = True)

print("SSIM: based on scikit-image = ", ssim_skimg)

但是我得到了这个输出:

(1, 128, 128, 3)
(1, 128, 128, 3)

ValueError: win_size exceeds image extent.  If the input is a multichannel (color) image, set multichannel=True.

有人可以告诉我哪里出了问题以及如何解决这个问题吗?

python deep-learning scikit-image ssim
1个回答
-1
投票

您有 3 通道图像,因此您应该使用

multichannel = True
参数。

您还应该删除图像的第一个维度以获得

(128,128,3)
形状

import numpy as np
from skimage.metrics import structural_similarity as ssim 

tar_image = np.zeros((128, 128, 3))
gen_image = np.zeros((128, 128, 3))

ssim_skimg = ssim(tar_image, gen_image, channel_axis=-1, data_range=255)
© www.soinside.com 2019 - 2024. All rights reserved.