cv2与PIL的一点不同

最近在dataloader的时候,读取图片需要用到cv2 和PIL的转换,所以在读取图片的时候,发现了一些不同之处,感觉还挺绕的,mark一下。

cv2:

cv2.imread()

读取出来的直接是np的array.

img.shape = [h,w,c] 
cv2.resize(size=(w,h))

此处的图像尺寸是有细微差别的,应该在官方的docs上是可以查到的:

height, width = img.shape[:2] res = cv.resize(img,(2 * width, 2 * height),
interpolation = cv.INTER_CUBIC)

PIL:

img = Image.open()
img = np.array(img),

需要多一步转化为np的array.
同时作为PIL的对象,

img.size=[w,h] 

但是当转化为np后,

img.shape = [h,w,c]

在数组顺序上是与cv2相同的,但是在c的顺序上是有细微区别的:
cv2 -> PIL : BGR -> RGB

一些疑问

此外,PIL的resize是对图像划定部分进行裁剪,而不是像cv2一样进行插值,目前所知的可以像cv2一样对图像进行插值的就是torch的pooling操作。

有没有大神也可以指导一下其他可以实现等效resize的简单方法 :)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值