python CV 和 PIL

1、用PIL读取的图片不是numpy,用cv读取的图片就是numpy。

testPIL = Image.open(r"d:\Desktop\test1.jpeg")
testCV = cv2.imread(r"d:\Desktop\test1.jpeg")

2、可以将PIL读入的图片赋值给numpy:

testPIL_NP = np.array(testPIL)

如下所示,testPIL_NP和testCV一模一样,唯一不一样的地方是,testPIL_NP是RGB,而testCV是BGR。

 

3、当图像数据是numpy类型时,只能用cv2.imwrite保存,不能用PIL的save保存;当图像类型是PIL.Image类型时,只能用PIL的save保存,不能用cv2.imwrite。

4、cv2.imread 默认读入三通道数据,哪怕原图是单通道的,它也会复制三份变成三通道。
如何指定读入的通道数:

img_o = cv2.imread(r"d:\Desktop\test1.jpeg", -1)  # 按原图的通道数,原图是几通道就读几通道
img_g = cv2.imread(r"d:\Desktop\test1.jpeg", 0)   # 读入灰度图,单通道
img_c = cv2.imread(r"d:\Desktop\test1.jpeg", 1)   # 读入彩色图,三通道
img_d = cv2.imread(r"d:\Desktop\test1.jpeg")      # 没写参数,默认是1,读入彩色图,三通道

 cv2.imwrite则不会默认三通道,当前numpy数据是几通道它就保存成几通道的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值