Numpy,Opencv及PIL.Image 格式相互转换

本文介绍了Numpy、OpenCV和PIL.Image之间的格式转换,包括Numpy与OpenCV的互转、IPL.Image与OpenCV的转换以及PIL.Image与Numpy的相互转换。在转换过程中,需要注意通道顺序、数据类型等问题,以确保正确无误地进行图像操作。同时,还补充了list、tuple、ndarray以及torch的tensor与numpy的转换知识。
摘要由CSDN通过智能技术生成

参考资料

1.Python OpenCV中的numpy与图像类型转换
2. 解决ndarray的类型错误
3. Python OpenCV格式和PIL.Image格式 互转
4. python模块 | opencv-python与PIL.Image图像常用方法与相互转换
5. OpenCV读取图片与PIL读取图片的差别
6. python中PIL.Image,OpenCV,Numpy图像格式相互转换

Numpy与Opencv格式互转

参照资料1

Python OpenCV存储图像使用的是Numpy存储,所以可以将Numpy当做图像类型操作,操作之前还需进行类型转换,转换到int8类型

对Opencv存储的图像格式进行验证

  • 输入:
"""
numpy与Opencv图像类型的转换
> Python OpenCV存储图像使用的是Numpy存储,所以可以将Numpy当做图像类型操作,操作之前还需进行类型转换,转换到int8类型
"""
import cv2
import numpy as np
from PIL import Image

img = cv2.imread('./Messi.jpg')
print("shape:" + str(img.shape))
print(type(img)) #数据类型显示为numpy.ndarray
  • 输出:
shape:(500, 500, 3)
<class 'numpy.ndarray'>

存储类型为numpy.ndarray,这是否表明numpy与Opencv可以直接互操作呢?答案是否定的。因为图像存放时,每个像素值都是非负的,并且取值范围受限于存储位数的限制,所以将numpy.ndarray存储为图像格式,需要先将其进行类型转换。

  • 输入:
array = np.ones([20, 30]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值