科技信息
1、引言
1980年,Matlab的首创者 Cleve Moler博士在 NewMexico大学教线
性代数课程时,看到了用高级语言编程解决工程计算问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
的诸多不便,
因而构思开发了Matlab软件。该软件主要包括 Simulink以及功能各异
的工具箱组成,以矩阵运算为基础,把计算、可视化、程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
融合到一
个简单易用的交互式工作环境中。可以实现工程计算、算法研究、符号
运算、建模和仿真、原型开发、数据分析和可视化、科学和工程绘图、应
用程序设计等功能。同时,为帮助科学研究,还推出一系列帮助科学分
析的工具箱,如图像处理、信号处理、小波、神经网络以及通信等多个不
同领域的专用工具箱,极大地方便了不同领域的科学研究工作。
图像处理在Matlab中的应用是由一系列支持图像处理的操作函数
组成,如几何操作、区域操作、块操作、滤波、变换、图像分割、图像边缘
提取、图像增强等,为便于应用,在该软件中形成图像处理工具包。图像
处理工具包的函数种类很多:图像显示、图像文件输入与输出、几何操
作、像素值统计、图像分析与增强、图像滤波、滤波器、图像变换、图像类
型转换等。该工具包与其它一样,使用者可以根据需要自行编写函数
[1,2]。
2、图像边缘提取理论
2.1图像边缘
图像边缘对图像识别和计算机分析十分有用,边缘能勾画出目标
物体,使观察者—目了然;边缘蕴含了丰富的内在信息,是图像识别中
重要的图像特征之一。从本质上说,图像边缘是图像局部特性不连续的
反映,它标志着一个区域的终结和另一个区域的开始[3]。它存在于目标
与背景、目标与目标、区域与区域、基元与基元之间,因此它是图像分割
所依赖的重要特征,也是纹理特征的重要信息源和形状特征的基础,而
图像的纹理形状特征的提取又常常要依赖于图像分割。图像边缘提取
也是图像匹配的基础,因为它是位置的标志,对灰度的变化敏感,可作
为匹配的特征点。
2.2图像边缘分类
图像边缘有方向和幅度两个特性。根据图像的边缘特性可分为阶
跃型、房顶型和凸缘型。阶跃型边缘常常对应目标的深度或反射边界;
而后两种反映表面法线方向的不连续。对于阶跃型边缘,二阶方向导数
在边缘处呈零交叉;而后两种,二阶方向导数在边缘处取极值。
2.3边缘的提取
为了计算方便起见,通常选择一阶和二阶导数来检测边界,利用求
导
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
可以很方便地检测到灰度值的不连续效果。常用的边缘提取算
子[4]如下:
(1)罗伯特(Robert)算子
Robert算子是一种利用局部差分算子寻找边缘的算子,如图 1。该
算子对具有陡峭的低噪声的图像效果较好。
图 1 Robert算子
(2)Sobel算子和 Prewitt算子
(a) (b)
图 2 Prewitt算和 Sobel算子
为在检测边缘的同时减少噪声的影响,Prewitt从加大边缘检测算
子的模板大小出发,由 2×2扩大到 3×3来计算差分算子,如图 2(a)。采
用 Prewitt算子不仅能检测边缘点, 而且能抑制噪声的影响。Sobel在
Prewitt算子的基础上,采用带权的方法计算差分,对应的模板如图 2(b)
所示。该算子不仅能检测边缘点,而且能进一步抑制噪声影响,但检测
的边缘较宽。
(3)LOG(Laplacian of Gaussian)算子
拉普拉斯算子是一个线性移不变的算子,它的传递函数在频域空
间的原点是零,因此经拉普拉斯滤波过的图像具有零平均灰度。LOG算
子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找
出图像中的陡峭边缘,最后用零灰度值进行二值化产生闭合、连通的轮
廓,消除了所有内部点。
(4)Canny算子
Canny算了检测边缘的方法是寻找图像梯度的局部极大值,梯度是
用高斯滤波器的导数计算的。该方法使用两个阈值来分别检测强边缘
和弱边缘,而且仅当弱边缘与强边缘相连时,弱边缘才会包含在输出
中。此方法不容易受噪声的干扰,能够检测到真正的弱边缘。因此,
Canny算子在图像处理中应用越来越广泛。它依据图像边缘检测最优准
则设计算法:
①用高斯滤波模板进行卷积以消除噪声;
②利用导数算子找到图像灰度沿着两个(x, y)方向的偏导数,并求
出梯度的大小;
③利用②的结果计算出梯度的方向;
④知道边缘的方向,就可以把边缘的梯度方向大致分四种:0°、
45°、90°、135°方向。通过梯度的方向,就可以找到这个像素梯度方向的
邻接像素;
⑤遍历图像,若某个像素的灰度值与其梯度方向上前后两个像素
的灰度值相比不是最大的,那么这个像素值为零,即不是边缘;
⑥使用累计直方图计算两个阈值,大于高阈值的一定是边缘,小于
低阈值的一定不是边缘,介于之间的,看这个像素的邻接像素中有没有
超过高阈值的边缘像素,如果有的话那么它就是边缘了,否则它就不是
边缘。
(5)零交叉(Zerocross)方法
零交叉方法先用指定的滤波器对图像进行滤波,然后寻找零交叉
作为边缘。
3、图像边缘提取的分析
3.1图像边缘提取函数
Matlab中 edge函数用于灰度图像边缘的提取,其语法结构[4]如下:
(1)BW=edge(I,‘method’, thresh, direction),返回与读取图像 I大小
一样的二进制图像 BW。
1)method表示图像边缘提取所采用的方法,方法如下:
①soble缺省值,用导数的 Sobel近似值检测边缘,梯度最大点返回
边缘;
②prewitt用导数的 Prewitt近似值检测边缘,梯度最大点返回边缘;
③roberts用导数的 Roberts近似值检测边缘,梯度最大点返回边缘;
④log使用高斯滤波器的拉普拉斯运算对 I进行滤波,通过寻找零
相交检测边缘;
⑤zerocross使用指定的滤波器对 I滤波后,寻找零相交检测边缘;
⑥canny用导数计算图像的两个阈值,大于高阈值为边缘,小于低
阈值为非边缘。
2)thresh表示该图像边缘提取方法所采用的阈值,所有小于阈值的
图像边缘都被忽略,缺省时自动选取阈值;
3)direction表示所采用方法指定方向,具有方向时才使用。direction
为字符串,其中 horizontal表示水平方向,vertical表示垂直方向,both表
示两个方向(缺省值);
(2)[BW, thresh]=edge(…)表示对图像边缘提取所返回的二进制图
像和阈值。
Matlab 在图像边缘提取中的应用
河南城建学院测绘与城市空间信息系 柏春岚
[摘 要]本文主要研究图像边缘提取,利用Matlab的图像边缘提取函数和算子,进行图像处理与分析,并对结果进行比较,得出各种
边缘提取方法的特点。
[关键词]图像处理 边缘提取 Matlab
1 0
0 - 1
0 1
- 1 0
1 0 - 1
1 0 - 1
1 0 - 1
1 1 1
0 0 0
- 1 - 1 - 1
1 2 1
0 0 0
- 1 - 2 - 1
1 0 - 1
2 0 - 2
1 0 - 1
计算机与网络
224— —
科技信息
题,并在校园的网络中形成固定的使用群体,才能够
在学院的网络文化中,慢慢的培养出重要的归属感。
三、面对冲击,我们不能一味的防守,我们应该发掘网络的重要优
势,建立新的校园网络战地
面对日新月异的网络时代,我们的高等教育工作者要积极走在学
生的前面,充当网络文化的领航员。不能够只是一味的防守,我们应该
发掘网络的重要优势。校园网络文化的健康发展,离不开优秀的校园网
站。校园网不仅是“人机交互”的工具,更是师生交流互动的平台。在我
们跟学生的交流过程中,不少学生反映他们之所以很少上校园网的主
要原因,是因为我们目前的校园网没有特色,吸引不了他们的兴趣。因
此我们必须针对现实,加强校园网站的建设。
注释
①《我国逾 1亿网民玩过网络游戏》.新华网,2008年 05月 16日第
三版新闻
②张再兴.《高校网络思想教育工作的十年历程和启示》.选自《中国
教育》, 2008年 5月 11日
参考文献
[1]褚峥.《校园网络文化功用的实现途径》.江苏高教,2004年第 01
期
[2]田向阳,刘励之.《网络时代高校校园文化活动新的求解方式》.理
论观察,2006年,第 03期
[3]史仕羽.《我校大学生对学校的认同归属感、责任感及参与校园
活动意识的调查与分析》.广东医学院学报,2007年 04期
[4]包克冰,徐琴美.《学校归属感与学生发展的探索研究》.心理学探
新,2006年,第 26卷,第 02期
(上接第 223页)
3.2图像的边缘提取
图像采用罗伯特算子、拉普拉斯算子、零交叉、Sobel算子、Prewitt
算子和 Canny算子等方法对其边缘提取,以 2000年摄影的珠江三角洲
图像为例,编程如下:
(1)编程
I=imread('20000502.jpg'); %读取图像
I1=im2double(I); %将彩图序列变成双精度
I2=rgb2gray(I1); %将彩色图变成灰色图
[thr, sorh, keepapp]=ddencmp('den','wv',I2);
I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp); %小波除噪
I4=medfilt2(I3,[9 9]); %中值滤波
I5=imresize(I4,0.2,'bicubic'); %图像大小
BW1=edge(I5,'sobel'); %sobel图像边缘提
取
BW2=edge(I5,'roberts'); %roberts图像边缘提取
BW3=edge(I5,'prewitt'); %prewitt图像边缘提取
BW4=edge(I5,'log'); %log图像边缘提取
BW5=edge(I5,'canny'); %canny图像边缘提取
h=fspecial('gaussian',5); %高斯滤波
BW6=edge(I5,'zerocross',[ ],h); %zerocross图像边缘提取
figure;
subplot(1,3,1); %图划分为一行三幅图,第一幅图
imshow(I2); %绘图
title('原始图像 '); %标注
subplot(1,3,2); %第二幅图
imshow(I3);
title('消噪后图像 ');
subplot(1,3,3); %第三幅图
imshow(I4);
title('中值滤波图像 ');
figure;
subplot(1,3,1);
imshow(BW1);
title('Sobel算子 ');
subplot(1,3,2);
imshow(BW2);
title('Roberts算子 ');
subplot(1,3,3);
imshow(BW3);
title('Prewitt算子 ');
figure;
subplot(1,3,1);
imshow(BW4);
title('log算子 ');
subplot(1,3,2);
imshow(BW5);
title('Canny算子 ');
subplot(1,3,3);
imshow(BW6);
title('Zerocross');
(2)结果分析
图像采用 Sobel算子、Roberts算子、Prewitt算子、LOG算子、Canny
算子与零交叉方法等进行边缘提取,仿真如图 3、4、5。
图 3原始图像与消噪图像图
图 4三种算子的边缘提取图
图 5三种算子的边缘提取图
从上图中可以看出,Sobel算子对灰度渐变的图像处理效果较好,
但是对变化不大的部位处理效果差以及边缘定位不准确;Roberts算子
对具有陡峭的低噪声的图像处理效果较好,但是提取的边缘比较粗,因
此对边缘的定位不是很准确;Prewitt算子对灰度渐变的图像处理效果
较好,但是提取的图像边缘的间断点较多;LOG算子比前面几种方法要
好,但是边缘的间断点也较多;Canny方法不容易受噪声干扰,能够检测
到真正的弱边缘,原因是它使用两种不同的阈值分别检测强边缘和弱
边缘,并且当弱边缘和强边缘相连时,可以将弱边缘包含在输出图像
中,但是与原始图像比较,所提取的边缘仍然存在不完整,且有丢失的
现象;Zerocross方法提取的边缘与原始图像相比,比较完整,优于其它
几种方法。
4、结论
采用罗伯特算子、拉普拉斯算子、Sobel算子、Prewitt算子、Canny算
子和零交叉方法对图像边缘进行提取,并对这几种方法的结果进行分
析与比较,发现零交叉方法对图像边缘的提取优于其它几种方法,能够
比较完整的显示图像的整个边缘,这为今后深入研究图像边缘的提取
提供了有益的参考和帮助。同时还表现出Matlab具有强大的图像处理
功能,为图像处理技术的深入研究提供有利的工具保障。
参考文献
[1]郝文化主编.Matlab图像图形处理应用教程[M].北京:中国水利
水电出版社,2003
[2]许志影,李晋平.Matlab及其在图像处理中的应用[J].江西:计算
机与现代化,2003,92(4):64~65
[3]余成波编著.数字图像处理及 Matlab实现[M].重庆:重庆大学
出版社,2003
[4]飞思科技产品研发中心编著.Matlab6.5辅助图像处理[M].北京:
电子工业出版社,2003
计算机与网络
225— —