PIL.Image与cv2读取图像时间的测试

from PIL import Image
import cv2
import time
img_path='F:\\2\\scene.jpg'

cv_start=time.time()
#2.使用cv2读取彩色图像
img_CV=cv2.imread(img_path)
# print(img_CV.shape,type(img_CV))#(168, 300, 3) <class 'numpy.ndarray'>  [height,width,3] BGR格式
cv_end=time.time()

print('cv2 read a image:{:.4f}s'.format(cv_end-cv_start))

#1.使用PIL.Image读取彩色图像
pil_start=time.time()
img_PIL=Image.open(img_path)
pil_end1=time.time()
print('pil to time1:{:.4f}'.format(pil_end1-pil_start))
# print(img_PIL.size,type(img_PIL))#(300, 168)<class 'PIL.JpegImagePlugin.JpegImageFile'>RGB格式[width,height]

#3.将PIL.Image转换成cv2的格式
#(1)首先将PIL.Image格式转换成numpy.ndarray数组格式
#(2)再将RGB通道转换成BGR通道
import numpy as np
img_PIL2CV=np.asarray(img_PIL)[:,:,::-1]
# img_PIL2CV=np.array(img_PIL2CV,dtype=np.uint8)
# img_PIL2CV2=cv2.cvtColor(img_PIL2CV,cv2.COLOR_RGB2BGR)
# print(img_PIL2CV.shape)


pil_end=time.time()
print('pil read a image:{:.4f}s'.format(pil_end-pil_start))

#4.将cv2转换成PIL.Image格式
#(1)将numpy.ndarray类型转换成Image
#(2)将BGR通道转换成RGB通道
img_CV2PIL=Image.fromarray(img_CV[:,:,::-1])

img_PIL.show()
img_CV2PIL.show()

'''
cv2 read a image:0.0020s(读取成numpy数组,BGR格式)
pil to time1:0.0185(读取成PIL.Image格式,RGB格式)
pil read a image:0.0200s(读取成numpy数组,BGR格式)
可以看出用opencv-python读取图像的速度要快很多
'''

猜你喜欢

转载自blog.csdn.net/WYXHAHAHA123/article/details/87879704