参考资料
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]