OpenCV PIL 读取的图像格式差异

OpenCV(python)

opencv通过imread()函数读取图像,返回值image有以下几个属性:

1.image是ndarray类型

2.image.shap表示图像的形状(H W C),其中C表示通道数/深度,它的顺序为BGR

3.image.dtype表示图像数据类型unit8(0-255)

4.没有.size属性

import cv2
image = cv2.imread('test.jpg')
print type(image) # out: numpy.ndarray
print image.dtype # out: dtype('uint8')
print image.shape # out: (300, 400, 3) (h,w,c) 和skimage类似
print image # BGR

PIL

PIL通过Image类的open()函数读取图像,返回值image有以下几个属性:

1.image是PIL自定义类型,需要通过numpy.array()函数转化为numpy可以处理的类型

2.image.shap表示图像的形状(H W C),其中C表示通道数/深度,它的顺序为GRB

3.image.size可以获取图像的高和宽

4.iamge.dtype表示图像像素的数据类型unit8(0-255)

from PIL import Image
import numpy as np
image = Image.open('test.jpg') 
print type(image) # out: PIL.JpegImagePlugin.JpegImageFile
print image.size  # out: (400,300)
print image.mode # out: 'RGB'
print image.shape # out: (100, 200, 3)
image = np.array(image,dtype=np.float32)

 

你可能感兴趣的:(OpenCV PIL 读取的图像格式差异)