zoukankan      html  css  js  c++  java
  • Matplotlib和skimage配合处理图像入门(只是把图像引进来了)

    又是愉快码代码的一天呢!!

    这篇是Py的图像处理

    首先我们导入一个图,利用的是Linux下的wget命令,以及调用系统命令需要在前面加!(在此感谢wisdom_jie大佬提供的图片)

    !wget  https://images2015.cnblogs.com/blog/140867/201601/140867-20160111162610585-190024450.png 
    

    其实这里想补充一点的是,skimage 的data 里有自带的图片,可以直接导入

    from skimage import io,data
    img=data.moon()
    io.imshow(img)
    

    astronaut     航员图片      coffee     一杯咖啡图片   
    lena          lena美女图片   camera   拿相机的人图片   
    coins           硬币图片     moon    月亮图片
    checkerboard   棋盘图片       horse   马图片   
    page   书页图片              chelsea   小猫图片     
    hubble_deep_field    星空图片   text   文字图片
    clock    时钟图片   immunohistochemistry   结肠图片  
    

    以及其实这些图片的名称,都是一个个函数!!!

    我们使用一下Matplotlib,这是一个绘图工具

    import matplotlib.pyplot as plt #Matplotlib 是Python中类似 MATLAB 的绘图工具
    import numpy as np
    from skimage import io,transform
    

    关于最后那个skimage

    scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。

    Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的

    利用io.imread(img_dir),导入图片,我们就可以对图片进行一波操作了

    Mypic = io.imread('140867-20160111162610585-190024450.png') #io.imread(img_dir),导入图片
    
    print(type(Mypic))  #显示类型
    print(Mypic.shape)  #显示尺寸
    print(Mypic.shape[0])  #图片高度
    print(Mypic.shape[1])  #图片宽度
    print(Mypic.shape[2])  #图片通道数
    print(Mypic.size)   #显示总像素个数
    print(Mypic.max())  #最大像素值
    print(Mypic.min())  #最小像素值
    print(Mypic.mean()) #像素平均值
    print(Mypic[0][0])#图像的像素值
    

    显示图片

    plt.subplot(121)#1代表行,2代表列,所以一共有2个图,1代表此时绘制第1个图。(如果没有,默认一张图片,后面的会把前面的覆盖)
    plt.imshow(Mypic)#显示图片
    plt.title('first')#题目
    plt.axis('off')#关闭坐标不可见(如果没有,会显示坐标)
    

    如果要显示两张图片呢?

    plt.subplot(121)#1代表行,2代表列,所以一共有2个图,1代表此时绘制第1个图。
    plt.imshow(Mypic)
    plt.title('first')
    plt.axis('off')#关闭坐标不可见
    
    
    plt.subplot(122)#1代表行,2代表列,所以一共有2个图,2代表此时绘制第二个图。
    plt.imshow(Mypic[:,:,0])
    plt.title('second')
    plt.axis('off');
    

    先就这样吧,希望不久的将来可以慢慢慢慢入门

  • 相关阅读:
    GitHub上如何创建组织?
    windows中使用Git如何解决文件冲突?
    GitHub上如何删除代码仓库?
    并发编程模型和访问控制
    大数据征信的应用和启示:ZestFinance的基于大数据的信用评估技术
    Hadoop的Python框架指南
    Redis+Django(Session,Cookie、Cache)的用户系统
    如何使你的Ajax应用内容可让搜索引擎爬行
    Web运营手记
    全屏slider--swiper
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/14109854.html
Copyright © 2011-2022 走看看