在进行超分辨率重建后想计算SSIM和PSNR,最开始发现导入compare_psnr,compare_ssim居然报错了,
bug1
ImportError: cannot import name ‘compare_psnr’ from ‘skimage.measure’
上网一查发现版本更新换成了structural_similarity和peak_signal_noise_ratio。
解决
之后又发现
bug2
报错ValueError: win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size explicitly in the function call, with an odd value less than or equal to the smaller side of your images. If your images are multichannel (with color channels), set channel_axis to the axis number corresponding to the channels.
好家伙,这么一大段话,我估计 multichannel=True也已经不用了,报错中说
set channel_axis to the axis number corresponding to the channels
将你的通道维度告诉channel_axis
解决
续:后来我完成了我的模型训练等等一切,最后计算全部数据的SSIM和PSNR时的代码我会放在下一篇文章中,但在这时又遇到了一个巨坑的错。
bug3
报错ValueError: image_true has intensity values outside the range expected for its data type. Please manually specify the data_range.
字面翻译:ValueError:image_true的强度值超出了其数据类型的预期范围。请手动指定data_range。
由于我的fake_img和hr_img是经过transforms.ToTensor()出来的,因此他们都在[0,1]的范围内,只用用一个data_range值为255就ok了,虽然我并不是很理解,但是代码就这么通了 0。0
修改前
修改后
文章来源地址https://www.toymoban.com/news/detail-480736.html文章来源:https://www.toymoban.com/news/detail-480736.html
到了这里,关于win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size ex的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!