本文注重对三种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,