美文网首页我爱编程
Python对图像的读取及处理

Python对图像的读取及处理

作者: DancingChild | 来源:发表于2018-03-08 21:55 被阅读0次

    一 读取:
    (1)skimage.io.imread与cv2.imread都可以读取图像,且都是numpy格式,但cv2的存储格式是BGR,而skimage的存储格式是RGB。

    (2)matplotlib:

    import matplotlib.pyplot as plt #plt 用于显示图片
    
    import matplotlib.image as mpimg   #mpimg 用于读取图片
    
    import numpy as np
    
    lena= mpimg.imread('lena.png')
    

    matplotlib 读取的是 RGB 图
    (3)PIL

    from PIL import Image
    im = Image.open('lena.png')
    im.show()
    

    PIL读取图片为Image对象,将 PIL Image 图片转换为 numpy 数组要用以下函数:

    im_array = np.array(im)
    

    二、图像数据类型以及转换:

    1. 一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:


      image.png

    一张图片的像素范围是[0, 255],所以类型是unit8,可以通过以下代码查看图像的数据类型:

      from skimage import io, data
      img = data.chelsea()
      print(img.dtype.name)
    

    2, 转换
    推荐使用skimage,实测很好用,不管图像深度是多少维。


    image.png

    三,矩阵
    关于矩阵,本来不该放在图像中,但是考虑到图像就是矩阵(Everything is matrix),很多对图像的操作实际就是对矩阵的操作,因此一并记录:
    主要是考虑矩阵的切片和索引:(亲自实践理解会更深刻,但总是会忘)
    多维矩阵的话,最外边的大括号里的元素数量就是shape的第一个值。

    相关文章

      网友评论

        本文标题:Python对图像的读取及处理

        本文链接:https://www.haomeiwen.com/subject/wwlufftx.html