zoukankan      html  css  js  c++  java
  • python数字图像处理(1):环境安装与配置

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点:

    1、不开源,价格贵

    2、软件容量大。一般3G以上,高版本甚至达5G以上。

    3、只能做研究,不易转化成软件。

    因此,我们这里使用python这个脚本语言来进行数字图像处理。

    要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的。

    要使用python进行各种开发和科学计算,还需要安装对应的包。这和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫库或包。基于python脚本语言开发的数字图片处理包,其实很多,比如PIL,Pillow, opencv, scikit-image等。

    对比这些包,PIL和Pillow只提供最基础的数字图像处理,功能有限;opencv实际上是一个c++库,只是提供了python接口,更新速度非常慢。到现在python都发展到了3.5版本,而opencv只支持到python 2.7版本;scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。

    一、需要的安装包

    因为scikit-image是基于scipy进行运算的,因此安装numpy和scipy是肯定的。要进行图片的显示,还需要安装matplotlib包,综合起来,需要的包有:

    Python >= 2.6
    
    Numpy >= 1.6.1
    
    Cython >= 0.21
    
    Six >=1.4
    
    SciPy >=0.9
    
    Matplotlib >= 1.1.0
    
    NetworkX >= 1.8
    
    Pillow >= 1.7.8
    
    dask[array] >= 0.5.0

    比较,安装起来非常费事,尤其是scipy,在windows上基本安装不上。

    但是不用怕,我们选择一款集成安装环境就行了,在此推荐Anaconda, 它把以上需要的包都集成在了一起,因此我们实际上从头到尾只需要安装Anaconda软件就行了,其它什么都不用装。

    二、下载并安装 anaconda

    先到https://www.continuum.io/downloads 下载anaconda, 现在的版本有python2.7版本和python3.5版本,下载好对应版本、对应系统的anaconda,它实际上是一个sh脚本文件,大约280M左右。

    本系列以windows7+python3.5为例,因此我们下载如下图红框里的版本:

    名称为: Anaconda3-2.4.1-Windows-x86_64.exe

    是一个可执行的exe文件,下载完成好,直接双击就可以安装了。

    在安装的时候,假设我们安装在D盘根目录,如:

    并且将两个选项都选上,将安装路径写入环境变量。

    然后等待安装完成就可以了。

    安装完成后,打开windows的命令提示符: 

    输入conda list 就可以查询现在安装了哪些库,常用的numpy, scipy名列其中。如果你还有什么包没有安装上,可以运行

    conda install ***  来进行安装。(***为需要的包的名称)

    如果某个包版本不是最新的,运行 conda update *** 就可以更新了。

    三、简单测试

    anaconda自带了一款编辑器spyder,我们以后就可以用这款编辑器来编写代码。

    spyder.exe放在安装目录下的Scripts里面,如我的是 D:/Anaconda3/Scripts/spyder.exe, 直接双击就能运行。我们可以右键发送到桌面快捷方式,以后运行就比较方便了。

    我们简单编写一个程序来测试一下安装是否成功,该程序用来打开一张图片并显示。首先准备一张图片,然后打开spyder,编写如下代码: 

    from skimage import io
    img=io.imread('d:/dog.jpg')
    io.imshow(img)

    将其中的d:/dog.jpg 改成你的图片位置

    然后点击上面工具栏里的绿色三角进行运行,最终显示



    如果右下角“ Ipython console" 能显示出图片,说明我们的运行环境安装成功。

    我们可以选择右上角的 ” variable explorer" 来查看图片信息,如

    我们可以把这个程序保存起来,注意python脚本文件的后缀名为py.

    四、skimage包的子模块

    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
  • 相关阅读:
    LOJ.114.K大异或和(线性基)
    BZOJ.2115.[WC2011]Xor(线性基)
    BZOJ.2460.[BeiJing2011]元素(线性基 贪心)
    Codeforces Round #494 (Div 3) (A~E)
    Codeforces Round #493 (Div 2) (A~E)
    BZOJ.3238.[AHOI2013]差异(后缀自动机 树形DP/后缀数组 单调栈)
    BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)
    BZOJ.1396.识别子串(后缀自动机/后缀数组 线段树)
    BZOJ.3489.A simple rmq problem(主席树 Heap)
    BZOJ.4566.[HAOI2016]找相同字符(后缀自动机)
  • 原文地址:https://www.cnblogs.com/denny402/p/5121501.html
Copyright © 2011-2022 走看看