python数字图像处理(1):环境安装与配置

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

一、不开源,价格贵linux

二、软件容量大。通常3G以上,高版本甚至达5G以上。c++

三、只能作研究,不易转化成软件。编程

所以,咱们这里使用python这个脚本语言来进行数字图像处理。windows

要使用python,必须先安装python,通常是2.7版本以上,不论是在windows系统,仍是linux系统,安装都是很是简单的。数组

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

对比这些包,PIL和Pillow只提供最基础的数字图像处理,功能有限;opencv其实是一个c++库,只是提供了python接口,更新速度很是慢。到如今python都发展到了3.5版本,而opencv只支持到python 2.7版本;scikit-image是基于scipy的一款图像处理包,它将图片做为numpy数组进行处理,正好与matlab同样,所以,咱们最终选择scikit-image进行数字图像处理。编辑器

1、须要的安装包函数

由于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软件就好了,其它什么都不用装。

2、下载并安装 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 *** 就能够更新了。

3、简单测试

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.

4、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
相关文章
相关标签/搜索