情况
在进行SRCNN的模型运行输出图片时,出现了输出的图片呈现错误颜色的情况
如下图:
左图为模型得到结果,右图为双三次线性插值结果。
可以看出图片颜色出现了异样,天空变成黄色,山变成蓝色。
还有以下图片:
蓝色变成了红色。
原因
这种情况,让人联想到色彩通道的错误,可能是在一系列操作中发生了错误,由于中间涉及opencv到numpy数组的相互转换,颜色格式在RGB和ycb之间的转换等,我进行了多次修改和尝试,最终在以下博客中找到了答案。
考虑到图片中出现了本应是红色的东西变为蓝色,本应是蓝色的东西变为黄色等一系列情况,我觉得应该是颜色通道的问题
失败尝试
在网上搜索后,发现PIL和opencv的图片转换格式并不相同,可能是导致问题的原因,但是我通过自带函数的相互转换并不能改变色调结果。
解决方案
进一步搜索后,我找到了如下文章,解答了我的疑惑,
【opencv】图像数据类型由numpy转为tensor后颜色改变-阿里云开发者社区 (aliyun.com)
但是按照这个方法改实在有些麻烦,所以我决定将所有opencv的部分改成PIL.IMAGE(泪)
后记
从本次错误,可以看出我的基础知识并不牢固,有待继续努力。
2023年5月29日_Cu.Li.Zn