我想计算生成图像和目标图像(从图像数组中随机选取)之间的结构相似性指数(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 通道图像,因此您应该使用
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)