数字图像处理课程设计.docx
- 文档编号:4698218
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:7
- 大小:94.91KB
数字图像处理课程设计.docx
《数字图像处理课程设计.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计.docx(7页珍藏版)》请在冰豆网上搜索。
数字图像处理课程设计
1引言
人类视觉系统认识目标的过程分为两步:
首先,把图象边缘与背景分离出来;然后,才能知觉到图象的细节,辨认出图象的轮廓。
计算机视觉正是模仿人类视觉的这个过程。
因此在检测物体边缘时,先对其轮廓点进行粗略检测,然后通过链接规则把原来检测到的轮廓点连接起来,同时也检测和连接遗漏的边界点及去除虚假的边界点。
图象的边缘是图象的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图象处理中一个重要的环节。
然而,边缘检测又是图象处理中的一个难题,由于实际景物图象的边缘往往是各种类型的边缘及它们模糊化后结果的组合,且实际图象信号存在着噪声。
噪声和边缘都属于高频信号,很难用频带做取舍。
2边缘检测
边缘检测的基本思想首先是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的边缘强度,通过设置阈值的方法提取边缘点集。
由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。
因此,边界检测包括两个基本内容:
(1)用边缘算子提取出反映灰度变化的边缘点集。
(2)在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
常用的边缘检测算子有:
roberts算子,sobel算子,prewitt算子,LoG算子,canny算子。
2.1Roberts算子
Roberts算子是一种梯度算子,它用交叉的差分表示梯度,是一种利用局部差分算子,对具有陡峭的低噪声的图像效果最好。
(2.1.1)
模板如图:
图2.1roberts算子模板
2.2Sobel算子
Sobel算子是滤波算子的形式来提取边缘。
X,Y方向各用一个模板,两个模板组合起来组成一个梯度算子。
X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。
(2.2.1)
模板如图:
图2.2Sobel算子模板
2.3Prewitt算子
Prewitt算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行滤波,所以prewitt算子对边缘的定位不如Roberts算子。
(2.3.1)
模板如图:
图2.3Prewitt算子模板
2.4LoG算子
LoG算子,即高斯型的拉普拉斯算子,它把的Gauss平滑滤波器和Laplacian锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,所以效果会更好。
(2.4.1)
模板如图:
图2.4LoG算子模板
LoG算子有以下特点:
(1)通过图像平滑,消除了一切尺度小于
的图像强度变化。
(2)若用其它微分方法,需要计算不同方向的微分,而它无方向性,因此可以节省计算量。
(3)它定位精度高,边缘连续性好,可以提取对比度较弱的边缘点。
LoG算子也有它的缺点:
当边缘的宽度小于算子宽度时,由于过零点的斜坡融合将会丢失细节。
2.5Canny算子
Canny算子是一阶算子,其方法的实质是用一个准高斯函数做平滑运算
(2.5.1)
然后以带方向的一阶微分算子定位导数最大值。
平滑后
的梯度可以使用2×2一阶有限差分近似式:
(2.5.2)
(2.5.3)
在这个2×2正方形内求有限差分的均值,便于在图像中的同一点计算x和y的偏导数梯度。
幅值和方向角可以用直角坐标到极坐标的坐标转化来计算:
(2.5.4)
(2.5.5)
反映了图像的边缘强度,
反映了边缘的方向,使得
取得局部最大值的方向角
,就反映了边缘的方向。
Canny算子也可用高斯函数的梯度来近似,在理论上很接近4个指数函数的线性组合形成的最佳边缘算子。
实际应用中的编程较为复杂且运算较慢。
3MATLAB程序及运行结果
以下为MATLAB边缘检测程序:
clear
I=imread('test.jpg');%提取图像
BW1=edge(I,'sobel',0.05);%用SOBEL算子进行边缘检测
BW2=edge(I,'roberts',0.05);%用Roberts算子进行边缘检测
BW3=edge(I,'prewitt',0.05);%用prewitt算子进行边缘检测
BW4=edge(I,'log');%用log算子进行边缘检测
BW5=edge(I,'canny');%用canny算子进行边缘检测
subplot(2,3,1),imshow(BW1);
title('sobeledgecheck');
subplot(2,3,2),imshow(BW2);
title('robertsedgecheck');
subplot(2,3,3),imshow(BW3);
title('prewittedgecheck');
subplot(2,3,4),imshow(BW4);
title('logedgecheck');
subplot(2,3,5),imshow(BW5);
title('cannyedgecheck');
subplot(2,3,6),imshow(I);
title('原图');
程序运行结果如下:
图3.1MATLAB边缘检测程序运行结果
4几种算子的比较
Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。
Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,但是对边缘的定位不是很准确,图像的边缘不只一个像素。
Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好,但边缘较宽,而且间断点多。
LoG算子检测方法通过检测二阶导数过零点来判断边缘点,LoG算子中的
正比于低通滤波器的宽度,
越大,平滑作用越显著,去除噪声越好,但图像的细节也损失越大,边缘精度也就越低。
所以在边缘定位精度和消除噪声间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取
,而且LoG方法没有解决如何组织不同尺度滤波器输出的边缘图为单一的,正确的边缘图的具体方法。
Canny算子检测方法不容易受噪声的干扰,能够检测到真正的弱边缘。
优点在于,使用两种不同的阈值分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像中。
5心得体会
这次数字图像处理的课程设计,我们的题目是《边缘提取不同算子方法的分析比较》,经过翻阅《数字图像处理》的课本,以及相关资料,还有在网上搜集的类似设计,最终我们确定了思路和MATLAB程序。
根据要求,对各个不同算子方法进行理论说明,并利用MATLAB程序,利用不同算子对图像进行处理,记录结果并分析各种方法的优缺点。
首先跟据思路,了解边缘检测的基本原理,再通过搜集的资料文献等,了解不同算子的基本理论,通过翻阅MATLAB相关的数字图像处理程序,写出对应的不同算子的程序,然后调用不同的算子对图像进行处理,完成设计。
接下来就是运行以及修改调试。
程序的主要问题在于如何利用不同算子处理图像,并得到较好的输出效果,解决了这两个问题,程序的主要功能已达到要求,再加以完善和补充即可。
在程序运行过程中也出现了些小问题,如漏掉“,”,指令键入错误等,但经过检查和修改,终于成功了!
通过这次数字图像处理的课程设计,我从中不仅学到了利用MATLAB程序实现数字图像处理设计原理和基本思路,并深入了解了MATLAB语言中不同边缘检测算子的调用,而且也加深了对理论的认识,进一步理解了MATLAB的指令功能和用法,了解了如何通过程序去实现功能,通过功能测试如何发现问题并通过修改程序而解决问题,更学会了如何通过各种途径收集资料,从中获取需要的信息,并为我所用,成为自己的能力,这对于今后的学习还是工作都有着积极的影响。
参考文献
[1]R.C.Gonzalez,R.E.Woods,S.L.Eddins.数字图像处理(MATLAB版)阮秋琦等译.北京:
电子工业出版社,2007.10.
[2]章毓晋.图像分割.北京:
科学出版社,2001.9.
[3]缪绍纲.用MATLAB处理数字图像.成都:
西南交通大学出版社,2001.
[4]陈桂明,张明照,戚红雨.应用MATLAB语言处理数字信号与数字图像.北京:
科学出版社,2001.
[5]赵春晖.现代图像处理技术及MATLAB实现.北京:
人民邮电出版社,2001.
致谢
在本次课程设计中,我从中学到了不少东西,不仅加强了动手能力,也加深了对理论的认识,其中离不开同组同学的帮助和支持,在此表示感谢。
课程设计不仅能检验我们对理论知识的掌握,也了解了设计的思路,在此我要感谢学校开设的这门课程,以及对我们的培养。
在课程设计过程中,当我们遇到困难时,指导老师的认真指导指引我们成功完成设计,在此表示万分的感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课程设计