详解Python Opencv和PIL读取图像文件的差别
前言
之前在进行深度学习训练的时候,偶然发现使用PIL读取图片训练的效果要比使用python-opencv读取出来训练的效果稍好一些,也就是训练更容易收敛。可能的原因是两者读取出来的数据转化为pytorch中Tensor变量稍有不同,这里进行测试。
之后的代码都导入了:
fromPILimportImage importmatplotlib.pyplotasplt importnumpyasnp importtorch importcv2
测试
使用PIL和cv2读取图片时会有细微的区别,通过下面的代码可以发现两者读取图片是有区别的,也就是使用PIL读取出来的图片转为numpy格式和直接使用cv读取的图片在像素点上并不是完全一致:
In[11]:image=cv2.imread('datasets/0_target.jpg')
In[18]:image_pil=Image.open('datasets/0_target.jpg').convert('RGB')
In[19]:image_pil=np.array(image_pil)
In[20]:image_cv=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
In[21]:image_cv==image_pil
Out[21]:
array([[[True,True,False],
[True,False,False],
[False,False,False],
...,
[True,True,True],
[True,True,True],
[True,True,True]],
[[True,True,False],
[True,True,True],
[False,True,False],
...,
[True,True,False],
[True,True,True],
[True,True,True]],
[[True,True,False],
[True,True,True],
[False,False,False],
...,
[True,True,True],
[True,True,True],
[True,True,False]],
...,
[[True,True,True],
[True,True,True],
[True,True,True],
...,
[False,False,True],
[True,True,True],
[False,False,False]],
[[True,True,True],
[True,True,True],
[True,True,True],
...,
[True,True,True],
[True,True,True],
[False,False,False]],
[[True,False,False],
[True,False,False],
[True,False,False],
...,
[True,True,True],
[False,False,False],
[True,False,False]]])
In[26]:image_cv.shape
Out[26]:(682,700,3)
In[27]:image_pil.shape
Out[27]:(682,700,3)
In[28]:image_pil-image_cv
Out[28]:
array([[[0,0,1],
[0,255,3],
[255,1,2],
...,
[0,0,0],
[0,0,0],
[0,0,0]],
[[0,0,2],
[0,0,0],
[255,0,2],
...,
[0,0,254],
[0,0,0],
[0,0,0]],
[[0,0,2],
[0,0,0],
[255,1,2],
...,
[0,0,0],
[0,0,0],
[0,0,254]],
...,
[[0,0,0],
[0,0,0],
[0,0,0],
...,
[254,1,0],
[0,0,0],
[1,255,3]],
[[0,0,0],
[0,0,0],
[0,0,0],
...,
[0,0,0],
[0,0,0],
[2,254,4]],
[[0,1,253],
[0,1,253],
[0,1,255],
...,
[0,0,0],
[1,254,1],
[0,255,2]]],dtype=uint8)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。