基于skimage的数字图像处理(一)——基础

数字图像处理 基础

  • 前言
  • 一、skimage是什么?
  • 1.模块内容
  • 2.安装skimage包
  • 二、图片显示
  • 三、图片的基本属性信息
  • 四、图像通道
  • 总结

  • 前言

    简单了解数字图像处理的基本概念、主要内容和应用。
    了解数字图像的表示、存储和属性。
    简单进行代码的编写、调试程序。


    一、skimage是什么?

    skimage即是Scikit-Image,是基于python脚本语言开发的数字图片处理包。 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。

    1.模块内容

    2.安装skimage包

    在Notebook中执行命令语句:

    # 运行以下代码,完成skimage的安装
    !pip install scikit-image
    

    二、图片显示

    在skimage中io.read可以读取目标路径下(需要自己导入)的图像,data库中则提供了可以直接使用的图片。

    代码如下:

    # 运行以下代码,完成图片的显示
    
    #导入数字图像处理包skimage的子模块data,便于之后使用其中的图片
    from skimage import data
    
    #导入绘图库(matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作。)
    import matplotlib.pyplot as plt
    
    img = data.coffee()   #导入data模块中的coffee的图片
    plt.imshow(img)     #接收img中的图像
    plt.show()          #显示结果,展示图片
    

    在notebook中运行就可以得到相应的结果:


    三、图片的基本属性信息

    1. 路径表示:
      '/‘代表根目录或路径层次之间的分隔,’./'代表当前路径。
    2. 使用skimage中的io子模块的图片读取、显示 。
    3. 了解图片的基本属性,如图片的尺寸、像素个数、通道、宽度、高度、像素值等 。

    代码如下:

    from skimage import io        #导入io模块,以读取目标路径下的图片
    img = io.imread('./dog.jpg')  #读取dog.jpg文件
    print(type(img))     #显示类型
    print(img.shape)     #显示尺寸
    print(img.shape[0])  #显示高度
    print(img.shape[1])  #显示宽度
    print(img.shape[2])  #显示图片通道数
    print(img.size)      #显示总像素数
    print(img.max())     #显示最大像素值
    print(img.min())     #显示最小像素值
    print(img.mean())    #像素平均值
    print(img[0][0])     #指定像素点的像素值
    io.imshow(img)       #io模块下显示图像
    io.show()            #显示图像
    

    结果:
    <class ‘numpy.ndarray’>
    (360, 520, 3)
    360
    520
    3
    561600
    255
    0
    92.52089031339031
    [17 27 3]


    四、图像通道

    RGB图像一般有三个通道,通过编程查看效果:

    代码如下:

    from skimage import io           #导入io模块
    img=io.imread('./dog.jpg')       #读取dog.jpg文件
    import matplotlib.pyplot as plt  #导入绘图库
    
    plt.figure(figsize=(16,10))        #figure(figsize=None); figsize:指定整体图像的宽和高,单位为英寸。
    
    #显示R通道图像(灰度图像);
    plt.subplot(2,2,1) #把显示界面分割成2*2的网格;三个参数分别表示行数,列数,图形标号。
    # img[:, :, 0]表示图像单通道的第一个通道。
    # cmap = 'gray' 显示出来的图像为灰度图像。
    plt.imshow(img[:,:,0],cmap='gray') 
    
    
    #显示G通道图像(灰度图像)
    plt.subplot(2,2,2)
    plt.imshow(img[:,:,1],cmap='gray')
    
    #显示B通道图像(灰度图像)
    plt.subplot(2,2,3)
    plt.imshow(img[:,:,2],cmap='gray')
    
    #显示原图像(彩色图像)
    plt.subplot(2,2,4)
    plt.imshow(img)
    
    #输入plt.show()指令才能使之前的图像全部显示
    plt.show()
    

    结果:


    总结

    以上就是今天要讲的内容,本文仅仅简单介绍了数字图像处理通过python实现的一些基础语法,skimage包以及其中的一些模块(如data,io模块等),小伙伴们也可以自行探索,欢迎讨论。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 基于skimage的数字图像处理(一)——基础

    发表评论