比较opencv,pillow,matplotlib,skimage读取图像的速度比

上面这些库都被广泛用于图像处理和计算机视觉任务;

不同的图像读取库(OpenCV,Pillow,matplotlib和skimage)的读取速度,是怎么样的一个情况?

下面分别从读取速度,以及转换到RGB通道的numpy格式两方面进行比较,

Python代码如下:


# 导入OpenCV库,用于处理图像  
import cv2  
  
# 从PIL库导入Image模块,用于处理图像  
from PIL import Image  
  
# 导入time库,用于计算和记录时间  
import time  
  
# 导入matplotlib.image模块,用于读取图像  
import matplotlib.image as mpimg # mpimg 用于读取图片  
  
# 导入numpy模块,用于对图像进行操作和处理  
import numpy as np  
  
# 从skimage库导入io模块,用于读取图像  
from skimage import io  
  
# 定义一个函数,名为opencv_i,用于测试OpenCV读取图像的速度  
def opencv_i():  
    # 记录开始时间  
    st = time.time()  
      
    # 使用OpenCV的imread函数读取图像,'./images.jpg'是图像文件的路径  
    img = cv2.imread("./images.jpg")  
      
    # 打印从开始到读取图像完成所需的时间  
    print(f"cv2 read take time {time.time() - st} s")  
      
    # 将读取的图像从BGR格式转换为RGB格式,BGR是OpenCV默认的色彩空间  
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  
      
    # 记录结束时间  
    end = time.time()  
      
    # 打印从开始到图像转换为RGB格式所需的总时间  
    print(f"opencv2 total take time {end - st} s,to rgb numpy format")  
  
# 定义一个函数,名为pillow_i,用于测试Pillow读取图像的速度  
def pillow_i():  
    # 记录开始时间  
    st = time.time()  
      
    # 使用Pillow的Image模块的open函数读取图像,'./images.jpg'是图像文件的路径  
    im = Image.open("./images.jpg")  
      
    # 打印从开始到读取图像完成所需的时间  
    print(f"pillow read take time {time.time() - st} s")  
      
    # 将Pillow的Image对象转换为numpy数组,以便后续进行数值操作  
    output = np.array(im)  
      
    # 记录结束时间  
    end = time.time()  
      
    # 打印从开始到转换为numpy数组所需的总时间,以及转换为RGB格式(numpy数组)的说明  
    print(f"pillow rgb numpy,total take time {end - st} s,to rgb numpy format")  
  
# 定义一个函数,名为matplot_i,用于测试matplotlib读取图像的速度  
def matplot_i():  
    # 记录开始时间  
    st = time.time()  
      
    # 使用matplotlib的imread函数读取图像,'./images.jpg'是图像文件的路径  
    lena = mpimg.imread('./images.jpg')   
      
    # 记录结束时间  
    end = time.time()  
      
    # 打印从开始到读取图像完成所需的时间,以及转换为RGB格式(numpy数组)的说明  
    print(f"matplot read take time {end - st} s,to rgb numpy format")  
  
# 定义一个函数,名为skimage_i,用于测试skimage读取图像的速度  
def skimage_i():  
    # 记录开始时间  
    st = time.time()  
      
    # 使用skimage的io模块的imread函数读取图像,'./images.jpg'是图像文件的路径  
    img = io.imread('images.jpg')  
      
    # 记录结束时间  
    end = time.time()  
      
    # 打印从开始到读取图像完成所需的时间,以及转换为RGB格式(numpy数组)的说明  
    print(f"skimage read take time {end - st} s,to rgb numpy format")  
  
# 打印30个破折号,用于分隔测试结果  
print("-"*30)  
# 调用opencv_i函数,测试OpenCV读取图像的速度并输出结果  
opencv_i()  
# 打印30个破折号,用于分隔测试结果  
print("-"*30)  
# 调用pillow_i函数,测试Pillow读取图像的速度并输出结果  
pillow_i()  
# 打印30个破折号,用于分隔测试结果  
print("-"*30)  
# 调用matplot_i函数,测试matplotlib读取图像的速度并输出结果  
matplot_i()  
# 打印30

运行结果如下:

从结果可以看到速度方面,opencv 最快,matplotlib 与 skimage库略微慢一点, pillow库相差的更多一点;

由于每个人的运行环境,图像大小,数量等因素的差异,本结果仅仅作为一个小小的参考;

个人水平有限,有问题随时联系;

欢迎一键三连~

彩蛋

更多干货内容请关注公众号SLearningAI:以AI算法与工程技术为核心的创作输出;
欢迎CSDN与公众号同步交流~

欢迎CSDN与公众号同步交流~ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是用Python读取TIF格式图片的示例代码: ``` python import numpy as np import matplotlib.pyplot as plt from PIL import Image # 读取TIF格式图片 img = Image.open('example.tif') # 将图片转换为NumPy数组 img_arr = np.array(img) # 显示图片 plt.imshow(img_arr) plt.show() ``` 这里使用了Pillow库来读取TIF格式图片,并使用Matplotlib库显示图片。读取后的图片被转换为NumPy数组,以便进行后续的处理。 ### 回答2: 使用Python读取tif格式图像可以使用PIL库(Python Imaging Library)或者OpenCV库。下面以PIL库为例,介绍读取tif图像的步骤。 首先,需要安装PIL库。可以通过以下命令在终端或命令提示符中安装: ``` pip install pillow ``` 接下来,导入PIL库并打开tif图像文件: ```python from PIL import Image image = Image.open('image.tif') ``` 然后,可以对图像进行一些操作,如获取图像大小、分辨率等: ```python width, height = image.size resolution = image.info['dpi'] ``` 如果需要显示图像,可以使用show()方法: ```python image.show() ``` 另外,还可以将图像保存为其他格式,如JPEG、PNG等: ```python image.save('image.jpg', 'JPEG') ``` 最后,需要关闭图像文件: ```python image.close() ``` 通过以上步骤,就可以使用Python读取和处理tif格式的图像了。 ### 回答3: 要使用Python读取.tif格式的图像,可以使用PIL库(Python Imaging Library)或OpenCV库中的相关函数。 首先,如果未安装PIL库,则需要在终端中运行以下命令进行安装: ``` pip install pillow ``` 然后,可以使用以下代码示例读取.tif图像: ```python from PIL import Image # 打开.tif图像 image = Image.open('image.tif') # 显示图像的宽度和高度 width, height = image.size print('图像宽度:', width) print('图像高度:', height) # 将图像转换为灰度图 gray_image = image.convert('L') # 显示灰度图 gray_image.show() # 保存灰度图 gray_image.save('gray_image.tif') # 关闭图像 image.close() ``` 上述代码首先导入Image模块,然后使用`Image.open()`函数打开.tif图像,并获取图像的宽度和高度。接下来,通过调用`convert()`函数并传入参数'L',将图像转换为灰度图,并使用`show()`函数显示灰度图。然后,使用`save()`函数保存灰度图为.tif格式。最后,使用`close()`函数关闭图像。 这样,我们就可以使用Python读取.tif格式的图像了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值