一提到处理,大部分人会想到Matlab,但是Matlab也有很多缺点:
- 不开源,价格贵
- 软件容量大。一般3G以上,高版本甚至达5G以上。
- 只能做研究,不易转化成软件。
因此,我们这里使用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
先到官网下载anaconda, 现在的版本有python2.7版本和python3.5版本,下载好对应版本、对应系统的anaconda,它实际上是一个sh脚本文件,大约300多M左右。
这部分很简单,按照官网上的就可以了,安装时需要指定一下安装目录,然后就是等待安装完成了,记得将安装路径配置到环境变量当中。
安装完成后,打开终端:
输入conda list
就可以查询现在安装了哪些库,常用的numpy, scipy名列其中。如果你还有什么包没有安装上,可以运行
conda install abc
来进行安装。(abc为需要的包的名称)
如果某个包版本不是最新的,运行 conda update abc
就可以更新了。
三、简单测试
进入Python交互界面,输入:
import skimage
如果没有任何提示,即安装成功。
四、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 data, color, io
网友评论