如何解决ValueError: win_size 超出图像范围如果输入是多通道彩色图像,则设置 multichannel=True
我正在尝试计算两个图像的 SSIM 值,但出现错误。
img_np.shape = (1,256,256)
out.detach()[0].cpu().numpy().shape = (1,256)
-
out
是模型生成的输出图像
当我尝试查找 SSIM 值 ssim_ = compare_ssim(img_np,out.detach().cpu().numpy()[0])
时出现错误 ValueError: win_size exceeds image extent. If the input is a multichannel (color) image,set multichannel=True.
我试过了
-
ssim_ = compare_ssim(img_np,out.detach().cpu().numpy()[0],full=True)
但同样的错误 -
ssim_ = compare_ssim(img_np,full=True,win_size=1,use_sample_covariance=False)
然后我将输出作为数组而不是数字
解决方法
形状 (1,256,256) 被解释为具有 1 行、256 列和 256 个颜色通道的图像。
您可以使用 numpy.squeeze 删除冗余维度:
img_np = np.squeeze(img_np)
新形状将是 (256,256) - 有效灰度图像的形状。
大多数 Python 包采用“Channels-Last”图像格式。
请参阅:A Gentle Introduction to Channels-First and Channels-Last Image Formats。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。