基于python读取图像的几种方式汇总

 更新时间:2022年06月30日 15:09:03   作者:花生david  
Python进行图片处理,第一步就是读取图片,下面这篇文章主要给大家介绍了关于基于python读取图像的几种方式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

本文介绍几种基于python的图像读取方式:

  • 基于PIL库的图像读取、保存和显示
  • 基于opencv-python的图像读取、保存和显示
  • 基于matplotlib的图像读取、保存和显示
  • 基于scikit-image的图像读取、保存和显示
  • 基于imageio的图像读取、保存和显示

安装方式基本使用pip即可:

pip install pillow
pip install scikit-image
pip install matplotlib 
pip install opencv-python
pip install numpy scipy scikit-learn

基于PIL库的图像读取、保存和显示

from PIL import Image

设置图片名字

img_path = './test.png'

用PIL的open函数读取图片

img = Image.open(img_path)

读进来是一个Image对象

img

查看图片的mode

img.mode
'RGB'

用PIL函数convert将彩色RGB图像转换为灰度图像

img_g = img.convert('L')
img_g.mode
'L'
img_g.save('./test_gray.png')

使用PIL库的crop函数可对图像进行裁剪

img_c = img.crop((100,50,200,150))img_c

请添加图片描述

图像旋转

img.rotate(45)

请添加图片描述

在图像上添加文字

from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('/home/fsf/Fonts/ariali.ttf',size=24)
draw.text((10,5), "This is a picture of sunspot.", font=font)
del draw
img

基于opencv-python的图像读取、保存和显示

import cv2
img = cv2.imread('./test.png')

使用cv2都进来是一个numpy矩阵,像素值介于0~255,可以使用matplotlib进行展示

img.min(), img.max()
(0, 255)
import matplotlib.pyplot as plt
plt.imshow(img)
plt.axis('off')
plt.show()

基于matplotlib的图像读取、显示和保存

import matplotlib.image as mpimg
img = mpimg.imread('./test.png')
img.min(),img.max()
(0.0, 1.0)

像素值介于0~1之间,可以使用如下方法进行展示

import matplotlib.pyplot as plt
plt.imshow(img,interpolation='spline16')
plt.axis('off')
plt.show()

注意:matplotlib在进行imshow时,可以进行不同程度的插值,当绘制图像很小时,这些方法比较有用,如上所示就是用了样条插值。

基于scikit-image的图像读取、保存和显示

from skimage.io import imread, imsave, imshow
img = imread('./test.png')

这个和opencv-python类似,读取进来也是numpy矩阵,像素值介于0~255之间

img.min(), img.max()
(0, 255)
import matplotlib.pyplot as plt
plt.imshow(img,interpolation='spline16')
plt.axis('off')
plt.show()

基于imageio的图像读取、显示和保存

import imageio
img = imageio.imread('./test.png')
img.min(), img.max()
(0, 255)

这个和opencv-python、scikit-image类似,读取进来也都是numpy矩阵,像素值介于0~255之间

import matplotlib.pyplot as plt
plt.imshow(img,interpolation='spline16')
plt.axis('off')
plt.show()

总结

到此这篇关于基于python读取图像的几种方式的文章就介绍到这了,更多相关python读取图像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解python中*号的用法

    详解python中*号的用法

    这篇文章主要介绍了python中*号的用法,文中通过代码给大家介绍了双星号(**)的用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 查看python安装路径及pip安装的包列表及路径

    查看python安装路径及pip安装的包列表及路径

    这篇文章主要介绍了查看python安装路径及pip安装的包列表及路径,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • python中的关键字参数*args和**kwargs详解

    python中的关键字参数*args和**kwargs详解

    这篇文章主要介绍了python中的关键字参数*args和**kwargs详解,在定义类或函数时,有时候会用到*args和**kwargs,前者叫位置参数,后者叫关键字参数,需要的朋友可以参考下
    2023-11-11
  • python使用pika库调用rabbitmq参数使用详情

    python使用pika库调用rabbitmq参数使用详情

    这篇文章主要介绍了python使用pika库调用rabbitmq参数使用详情,文章通过展开文章主题分享了三种方式,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Python IDLE Subprocess Connection Error的简单解决方法

    Python IDLE Subprocess Connection Error的简单解决方法

    最近用要Python处理一点事,就打开Python IDLE,结果出现错误,下面这篇文章主要给大家介绍了关于Python IDLE Subprocess Connection Error的简单解决方法,需要的朋友可以参考下
    2023-01-01
  • Python获取系统所有进程PID及进程名称的方法示例

    Python获取系统所有进程PID及进程名称的方法示例

    这篇文章主要介绍了Python获取系统所有进程PID及进程名称的方法,涉及Python使用psutil对系统进程进行操作的相关实现技巧,需要的朋友可以参考下
    2018-05-05
  • Python随机值生成的常用方法总结

    Python随机值生成的常用方法总结

    这篇文章主要为大家详细介绍了Python中随机值生成的一些常用方法,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以了解一下
    2022-10-10
  • Python程序设计入门(3)数组的使用

    Python程序设计入门(3)数组的使用

    这篇文章主要介绍了Python数组的使用方法,需要的朋友可以参考下
    2014-06-06
  • Python中切片操作的示例详解

    Python中切片操作的示例详解

    在刚学python时候,我们都知道字符串(String)、列表(list)和元组(tuple)序列化数据类型支持切片操作。本文我们将对熟悉的切片操作进行系统学习,感兴趣的可以了解一下
    2022-11-11
  • Django零基础入门之路由path和re_path详解

    Django零基础入门之路由path和re_path详解

    这篇文章主要介绍了Django零基础入门之路由path和re_path,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论