Python中的结构相似指数(SSIM) (Multichannel错误)



我想计算生成的图像和目标图像(从图像数组中随机选择的图像)之间的结构相似性指数(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.

有人能告诉我哪里我错了,我怎么能解决这个问题?

您有3个通道图像,因此您应该使用channel_axis参数。

你还应该删除你的图像的第一个维度,以获得(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)

最新更新