PIL和cv2读取图片时的差异

今天要写的代码涉及到数据增强的部分,因为我用的框架是pytorch,想着如果直接有数据增强的函数直接用就好了,省的写了,查了一下确实有,就在torchvision的tranform中,但是这里面对于图像的变化都是针对于PIL图像的,而我之前对于图片的操作都是用的给cv2,就稍微看了一下PIL的用法,再加上函数,图像增强的部分算是搞明白了。

但是在我训练完之后,要预测时,因为要计算混淆矩阵,但是老出错误,往回寻找错误才发现问题。

混淆矩阵计算时,真值和预测值所对应的标签都是一致的,比如我是两分类,预测的结果是0和1,而label因为随着样本图像做过数据增强,所以它也是经过PIL处理的,我就打开label的值看了一下,居然是0和0.0032,试验了很多遍,确实是因为PIL打开图片的原因,我本来在考虑按照哪个格式来,分析了一下,肯定是整数来代替类别比较方便,所以我决定想办法将PIL打开的后的图片经过变化之后,能转成cv2打开的那个样子。

查了一下,说PIL打开图片是”RGB“方式,而cv2打开是”BGR"方式,难道这个导致了像素值的变化?我以为这两种打开方式只是改变了宽高,可惜PIL也没有以“BGR”打开的方式,也不能比较一下值变化是不是因为这个。

将PIL转成numpy或者tensor如果用那种常见的方式依旧不行,欸,我看到了一个这样的转换方式np.asanyarray(),试了一下,果真,那些个0.0039变成了1,总算解决了一个问题了。

本来我在训练的时候发现loss值相比于之前训练的特别低,还以为数据增强这么管用,原来是因为数据增强让我的label变得那么小,所以loss值才那么低的......现在改完了,重新跑一下看看数据增强的作用吧~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值