Python图像对比: opencv matplotlib.pyplot PIL.Image

本文对比了Python中用于图像处理的三大库:opencv、matplotlib.pyplot和PIL在图像读取、显示、色彩转换和保存方面的差异。opencv默认以BGR顺序读取图像,matplotlib.pyplot以RGB顺序读取,而PIL有自己的图像格式。在显示图像时,opencv需要配合窗口管理函数,matplotlib.pyplot则直接显示。色彩转换方面,opencv和PIL支持在读取时指定色彩模式,转换图像。保存图像时,不同库有不同的效果和文件大小差异。
摘要由CSDN通过智能技术生成

本文注重对三种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,  
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值