zoukankan      html  css  js  c++  java
  • 图像的读取,显示与保存(基于skimage模块)

    一 skiamge模块

    skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下:

    子模块名称  主要实现功能
    io 读取、保存和显示图片或视频
    data 提供一些测试图片和样本数据
    color 颜色空间变换
    filters 图像增强、边缘检测、排序滤波器、自动阈值等
    draw 操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等
    transform 几何变换或其它变换,如旋转、拉伸和拉东变换等
    morphology 形态学操作,如开闭运算、骨架提取等
    exposure 图片强度调整,如亮度调整、直方图均衡等
    feature 特征检测与提取等
    measure 图像属性的测量,如相似性或等高线等
    segmentation 图像分割
    restoration 图像恢复
    util 通用函数

    用到一些图片处理的操作函数时,需要导入对应的子模块,如果需要导入多个子模块,则用逗号隔开,如:

    from skimage import io,data,color

    二 从外部读取图片并显示

    2.1 彩色图片

    • 读取单张彩色RGB图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。
    • 显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
    from skimage import io
    img=io.imread('d:\杨幂.jpg')
    io.imshow(img)

    结果如下图所示:

    2.1 灰度图片

    • 读取使用skimage.io.imread(fname,as_grey=True)函数,第一个参数为图片路径,第二个参数为as_grey, bool型值,默认为False。
    • 显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
    from skimage import io
    img = io.imread("d:/杨幂灰度图.png",as_grey = True)
    io.imshow(img)

    结果如下所示:

    三 程序自带图片读取与显示

    skimage程序自带了一些示例图片,如果我们不想从外部读取图片,就可以直接使用这些示例图片:

    astronaut

    宇航员图片

    coffee

    一杯咖啡图片

    lena

    lena美女图片

    camera

    拿相机的人图片

    coins

    硬币图片

    moon

    月亮图片

    checkerboard

    棋盘图片

    horse

    马图片

    page

    书页图片

    chelsea

    小猫图片

    hubble_deep_field

    星空图片

    text

    文字图片

    clock

     时钟图片

    immunohistochemistry

    结肠图片

     

     

    举例如下:

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

    结果如下所示:

    图片名对应的就是函数名,如camera图片对应的函数名为camera()。

    四 保存图片

    使用io模块的imsave(fname,arr)函数来实现。第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量。

    from skimage import io,data
    img=data.chelsea()
    io.imshow(img)
    io.imsave('d:/cat.jpg',img)

    结果如下所示:

    五 图片的信息

    如果我们想知道一些图片信息,可以通过Variable explorer读取:

    当然我们也可以通过程序获得:

    from skimage import io,data
    img=data.chelsea()
    io.imshow(img)
    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()) #像素平均值

    结果如下所示:

    (300, 451, 3)
    300
    451
    3
    405900
    231
    0
    115.305141661

    参考:https://www.cnblogs.com/denny402/p/5121897.html

  • 相关阅读:
    Thread
    C# Iterations: IEnumerator, IEnumerable and Yield
    基于SharePoint 2010 创建一个简单的工作流
    利用with关键字实现数据查询的递归调用
    编写JQuery插件示例
    生成密码web小工具
    (转)关于SQL Server 中合并行的方法
    html5做的割绳子游戏
    SharePoint Foundation和SharePoint Server的区别
    如何实现基于AD的MOSS的FORM认证方式
  • 原文地址:https://www.cnblogs.com/Terrypython/p/9941553.html
Copyright © 2011-2022 走看看