详解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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。