zoukankan      html  css  js  c++  java
  • python matplotlib.pyplot对图像进行绘制

    imshow()是对图像进行绘制

    imshow()函数格式为:

      matplotlib.pyplot.imshow(X, cmap=None)

      X: 要绘制的图像或数组。

      cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。

    实例:

    import matplotlib.pyplot as plt
    plt.imshow(img)

    这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据。在窗口上绘制完图片后,返回一个AxesImage对象。要在窗口上显示这个对象,我们可以调用show()函数来进行显示。在ipython中绘制完后不用show函数也能自动把图画出来,网上很多教程都是在ipython中进行的,所以都没提到要用show函数。

    from skimage import io,data
    img=data.astronaut()
    dst=io.imshow(img)
    print(type(dst))
    io.show()

    显示为:

    可以看到,类型是'matplotlib.image.AxesImage'。显示一张图片,我们通常更愿意这样写:

    import matplotlib.pyplot as plt
    from skimage import io,data
    img=data.astronaut()
    plt.imshow(img)
    plt.show()

    matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure窗口,设置figure的标题,隐藏坐标尺,甚至可以使用subplot在一个figure中显示多张图片。一般我们可以这样导入matplotlib库:

    import matplotlib.pyplot as plt

    也就是说,我们绘图实际上用的是matplotlib包的pyplot模块。

    一、用figure函数和subplot函数分别创建主窗口与子图

    例:分开并同时显示宇航员图片的三个通道

    from skimage import data
    import matplotlib.pyplot as plt
    img=data.astronaut()
    plt.figure(num='astronaut',figsize=(8,8))  #创建一个名为astronaut的窗口,并设置大小 
    
    plt.subplot(2,2,1)     #将窗口分为两行两列四个子图,则可显示四幅图片
    plt.title('origin image')   #第一幅图片标题
    plt.imshow(img)      #绘制第一幅图片
    
    plt.subplot(2,2,2)     #第二个子图
    plt.title('R channel')   #第二幅图片标题
    plt.imshow(img[:,:,0],plt.cm.gray)      #绘制第二幅图片,且为灰度图
    plt.axis('off')     #不显示坐标尺寸
    
    plt.subplot(2,2,3)     #第三个子图
    plt.title('G channel')   #第三幅图片标题
    plt.imshow(img[:,:,1],plt.cm.gray)      #绘制第三幅图片,且为灰度图
    plt.axis('off')     #不显示坐标尺寸
    
    plt.subplot(2,2,4)     #第四个子图
    plt.title('B channel')   #第四幅图片标题
    plt.imshow(img[:,:,2],plt.cm.gray)      #绘制第四幅图片,且为灰度图
    plt.axis('off')     #不显示坐标尺寸
    
    plt.show()   #显示窗口

    在图片绘制过程中,我们用matplotlib.pyplot模块下的figure()函数来创建显示窗口,该函数的格式为:

    matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)

    所有参数都是可选的,都有默认值,因此调用该函数时可以不带任何参数,其中:

    num: 整型或字符型都可以。如果设置为整型,则该整型数字表示窗口的序号。如果设置为字符型,则该字符串表示窗口的名称。用该参数来命名窗口,如果两个窗口序号或名相同,则后一个窗口会覆盖前一个窗口。

    figsize: 设置窗口大小。是一个tuple型的整数,如figsize=(8,8)

    dpi: 整形数字,表示窗口的分辨率。

    facecolor: 窗口的背景颜色。

    edgecolor: 窗口的边框颜色。

    用figure()函数创建的窗口,只能显示一幅图片,如果想要显示多幅图片,则需要将这个窗口再划分为几个子图,在每个子图中显示不同的图片。我们可以使用subplot()函数来划分子图,函数格式为:

    matplotlib.pyplot.subplot(nrowsncolsplot_number)

    nrows: 子图的行数。

    ncols: 子图的列数。

    plot_number: 当前子图的编号。

    如:

    plt.subplot(2,2,1)

    则表示将figure窗口划分成了2行2列共4个子图,当前为第1个子图。我们有时也可以用这种写法:

    plt.subplot(221)

    两种写法效果是一样的。每个子图的标题可用title()函数来设置,是否使用坐标尺可用axis()函数来设置,如:

    plt.subplot(221)
    plt.title("first subwindow")
    plt.axis('off') 

    http://blog.csdn.net/haoji007/article/details/52063168

  • 相关阅读:
    动易CMS 实现ctrl+v粘贴图片并上传、word粘贴带图片
    帝国CMS 实现ctrl+v粘贴图片并上传、word粘贴带图片
    php大文件上传(切片)工具
    php大文件上传(分块)
    php大文件上传(分片)
    Nginx大文件上传(切片)
    百度WebUploader大文件上传(切片)
    WebUploader大文件上传(切片)
    html5大文件上传(切片)
    jquery大文件上传(切片)
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/7389430.html
Copyright © 2011-2022 走看看