文章目录
语言环境
本学期开设了计算机视觉的课程,采用了python语言进行处理。先介绍一下采用到的软件和编译环境。
1、python环境的下载
推荐大家下载Anaconda,Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。这里采用的是Anaconda2-5.0.0进行下载,为了配合课本的学习,采用了python2.7的版本。Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等。
环境配置好之后打开cmd输入:conda --version
输出版本号之后说明安装成功了
2、编辑器下载
我采用了pycharm软件Windows系统的专业版,具体下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
为了方便后续的使用,可以使用补丁注册服务器永久激活。
最新补丁下载:https://pan.baidu.com/s/1S4lYdN19BqmPFTKHUdGK5g
提取码:ss4c
1、绘制图像基本轮廓以及直方图
采用的库:
1、PIL:Python图像处理类库
PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。由于pycharm中已经包含了该库,我们就不用进行另外的下载,直接引用就可以了。
2、Matplotlib
我们处理数学运算、绘制图表,或者在图像上绘制点、直线和曲线时,Matplotlib是个很好的类库,具有比 PIL 更强大的绘图功能。Matplotlib 可以绘制出高质量的图表,就像本书中的许多插图一样。Matplotlib 中的 PyLab 接口包含很多方便用户创建图像的函数。Matplotlib 是开源工具,可以从 http://matplotlib.sourceforge.net/免费下载。该链接中包含非常详尽的使用说明和教程。同样pycharm也包含了该库,我们也直接进行引用。
3、NumPy
NumPy(http://www.scipy.org/NumPy/)是非常有名的 Python 科学计算工具包,其中包含了大量有用的思想,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。数组对象可以帮助你实现数组中重要的操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化,这为图像变形、对变化进行建模、图像分类、图像聚类等提供了基础。
1.1基本原理
绘制轮廓需要对每个坐标 [x, y] 的像素值施加同一个阈值,所以首先需要将图像灰度化,这里用 PIL 的 convert() 方法将图像转换成灰度图像。在使用axis()函数进行操作。
图像的直方图用来表征该图像像素值的分布情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。该(灰度)图像的直方图可以使用 hist() 函数绘制。hist() 函数的第二个参数指定小区间的数目。需要注意的是,因为 hist() 只接受一维数组作为输入,所以我们在绘制图像直方图之前,必须先对图像进行压平处理。flatten() 方法将任意数组按照行优先准则转换成一维数组。
1.2代码设计
# encoding:utf-8
from PIL import Image
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
im = array(Image.open('D:\Python\u.jpg').convert('L'))
figure()
subplot(121)
gray()
contour(im, origin='image')
axis('equal')
axis('off')
title(u'图像轮廓')