cv2、matplotlib和PIL读取图像文件,返回的类型不一
2021-01-28 本文已影响0人
LabVIEW_Python
cv2、matplotlib和PIL读取图像文件,返回的类型不一样,源码:
img_cv = cv2.imread('test.jpg')
img_PIL = Image.open('test.jpg')
img_plt = plt.imread('test.jpg')
print(type(img_cv), type(img_plt), type(img_PIL))
结果:
<class 'numpy.ndarray'> <class 'numpy.ndarray'> <class 'PIL.JpegImagePlugin.JpegImageFile'>
- cv2: 返回<class 'numpy.ndarray'>
- matplotlib: 返回<class 'numpy.ndarray'>
- PIL: 返回<class 'PIL.JpegImagePlugin.JpegImageFile'>
<class 'numpy.ndarray'> 类型与<class 'PIL.JpegImagePlugin.JpegImageFile'>类型转换方式如下所示:
- PIL 转 cv2
img_PIL = Image.open('test.jpg')
img_cv = np.asarray(img_PIL)
print(type(img_cv), type(img_PIL))
- cv2 转 PIL
img_cv = cv2.imread('test.jpg')
img_PIL = Image.fromarray(cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB))
print(type(img_cv), type(img_PIL))