PIL.Image.open 与 cv2.imread 读取的图片在像素点上不一致,具体原因不明,但是从两者图片相减之后得到图片来看,似乎是 PIL.Image.open 或 cv2.imread 中至少有一个在读取图片时,产生了问题。
不过也有可能是下面的原因:
opencv的cv2.imwrite()函数写图像之后,再次读取,其像素值不相等的bug:https://blog.csdn.net/oukohou/article/details/82378552
另得到的经验是,模型在推断阶段的数据处理操作跟训练阶段的都要尽量一致,包括在推理阶段 使用 PIL.Image.open,而在训练阶段 cv2.imread 来读取图片,同时无论操作是否一致,都要对输入、输出做严格的一致性检查,以避免出现意料之外的错误。
网友评论