本文注重对三种Python下常用的图像操作库。
分别从以下几个方面进行对比说明:
- 图像读取
- 图像显示
- 色彩转换
- 图像保存
目录
图像读取
open cv 读取方式
import cv2
color_image = cv2.imread('./logo.jpg', 1)
gray_image = cv2.imread('./logo.jpg', 0)
print('for color image:', color_image.dtype, color_image.size, color_image.shape)
print('for gray image:', gray_image.dtype, gray_image.size, gray_image.shape)
print('max is', np.max(color_image))
print('min is', np.min(color_image))
运行后输出信息:
for color image: uint8 2227200 (725, 1024, 3)
for gray image: uint8 742400 (725, 1024)
max is 255
min is 0
可知opencv读入图片以numpy矩阵的形式存放,默认为0-255.
在读取图像时,可以规定读入方式,1为读入彩色图像,0为读入灰度图像。
需要注意的是,opencv默认以BGR的顺序读入图像!
matplotlib.pyplot 读取方式
import matplotlib.pyplot as plt
color_image_plt = plt.imread('./logo.jpg')
print('for color image:', color_image_plt.dtype, color_image_plt.size, color_image_plt.shape)
print('max is', np.max(color_image_plt))
print('min is', np.min(color_image_plt))
输出为
for color image: uint8 2227200 (725, 1024, 3)
max is 255
min is 0
可知plt将读入的图像同样以numpy形式存放,但是其读入的通道顺序为RGB.
可以通过如下方式验证:
关于第一个维度:
color_image_plt[:,:,1] == color_image_cv2[:,:,1]
输出为
array([[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True,

本文对比了Python中用于图像处理的三大库:opencv、matplotlib.pyplot和PIL在图像读取、显示、色彩转换和保存方面的差异。opencv默认以BGR顺序读取图像,matplotlib.pyplot以RGB顺序读取,而PIL有自己的图像格式。在显示图像时,opencv需要配合窗口管理函数,matplotlib.pyplot则直接显示。色彩转换方面,opencv和PIL支持在读取时指定色彩模式,转换图像。保存图像时,不同库有不同的效果和文件大小差异。
最低0.47元/天 解锁文章
1154

被折叠的 条评论
为什么被折叠?



