1、图像锐化处理报告学 院信息科学与工程专 业电子信息工程学生姓名张楠楠 学 号G6*5设计题目图像的锐化处理内容及要求:利用MATLAB进行编程和仿真,仿真的内容为图像的锐化处理,可以采用微分算子、拉普拉斯算子、Canny算子等实现。对设计结果进行理解和分析。进度安排:2009年 06月15 日 选题目查阅资料2009年 06月16 日 编写软件源程序或建立仿真模块图2009年 06月17 日-18日 调试程序或仿真模型2009年 06月19 日 性能分析及验收2009年 06月20 日-21日 撰写课程设计报告、答辩 指导教师(签字): 年 月 日 学院院长(签字): 年 月 日 课 程 设
2、计 任 务 书目 录1 课程设计目的12 课程设计要求13 相关知识14 课程设计分析25 程序代码56 运行结果77 参考文献8图像的锐化处理1.课程设计目的(1)加深对图像的锐化处理基本理论知识的理解。(2)培养独立开展科研的能力和编程能力。(3)掌握基本图像锐化处理的过程及其应用。2.课程设计要求(1)掌握课程设计的相关知识、概念清晰。(2)程序设计合理、能够正确运行。3.相关知识图像处理并不仅限于对图像进行增强、复原和编码,还要对同乡进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。描述一般针对图像或景物中的特定区域或
3、目标。为了描述,首先要进行分割。边缘检测是图像分析中的重要内容。边缘是图像的最基本特征。所谓边缘,是指周围像素灰度有阶跃变化货屋顶变化的那些像素的集合。边缘广泛存在于物体于背景之间、物体与物体之间、基元与基元之间,因此它也是图像分割所依赖的重要特征。两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的表现。常见的边缘点有:阶梯形边缘(Step-edge),即从一个灰度到比它高(或低)好多的另一个灰度;屋顶形边缘(Roof-edge),它的灰度是慢慢增加(减少)到一定程度然后慢慢减小(增加);线形边缘(Line-edge),它的灰度线性变化中出现灰度脉冲。边缘特点如图所示。 由于边缘
4、是图像上灰度变化最剧烈的地方,传统的边缘检测就是利用了这一特点,对图像各个像素点进行微分或求二阶微分来确定边缘像素点。一阶微分图像的峰值处对应着图像的边缘点。根据数字图像的特点,处理图像过程中常采用差分来代替导数运算,对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。为了克服一阶导数的缺点,我们定义图像的梯度算子为:这是图像处理中最常用的一阶微分算法,式子中的F(j,k)表示图像的灰度值,图像梯度的最重要的性质是梯度的方向在图像灰度的最大变化率上,这恰好可以反映出图像边缘上的灰度变化。图像边缘提取的常用梯度算子有Robert算子、Sobel算子、Pre
5、witt算子、拉普拉斯算子等。4.课程设计分析4.1微分算子对于数字图像而言,可用差分近似表示式,如下:为了便于编程和提高运算速度,在一般的应用条件下,上式可以简化为:相对的一阶差分为:Robert算子的表达式为:这里,Gj,k表示处理后(j,k)点的灰度值,F(j,k)表示处理前该点的灰度值。其实Robert算子的表达式可以有两种情况(一般以(b)为准),如图所示所对应的模板为:Sobel算子的表达式为:所对应的模板为:Prewitt算子所对应的模板为: MATLAB图像处理工具箱中,edge函数实现边缘检测的功能,下面分别介绍其调用格式。对于Robert算子:BW=edge(I,rober
6、ts)用Robert算子自动选择阈值进行边缘检测。BW=edge(I,roberts,thresh)根据制定的敏感阈值thresh,用Robert算子进行边缘检测,edge函数忽略了所有小于阈值的边缘。如果没有指定阈值thresh或为,函数自动选择参量值。BW,thresh=edge(I,roberts,)返回阈值thresh和边缘检测图像BW。对于Sobel算子:BW=edge(I,sobel)用Sobel算子自动选择阈值进行边缘检测。BW=edge(I, sobel,thresh)根据指定的敏感阈值thresh用Sobel算子进行边缘检测,edge函数忽略了所有小于阈值的边缘,如果没有指定
7、阈值thresh或为,函数自动选择参数量BW=edge(I,sobel,thresh,direction)指定Sobel算子边缘检测方向。参量direction的值为水平方向horizontal、垂直方向vertical或二者都是both(缺省)。BW,thresh=edge(I,sobel,)返回阈值thresh和边缘检测图像BW。对于Prewitt算子:该算子edge函数的调用格式和Sobel算子一致。4.2 Log算子拉普拉斯算子是一种二阶边缘检测算子,它是一个线性的、移不变的算子。定义为:图像经过二阶微分之后,在边缘出产生一个陡峭的零交叉,根据这个零交叉判断边缘。拉普拉斯算子一般采用的
8、模板为:由于图像边缘处的一阶微分的极值点,图像边缘处的二阶微分应为零,确定零点的位置要比确定极值点容易得多,也比较精确。但二阶微分对噪声更为敏感。因此,在通常情况下,在对图像进行拉普拉斯算子边缘处理前,先对图像进行平滑滤波器处理,一般采用的是高斯滤波器。把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测的方法叫做高斯拉普拉斯算子(简称Log算子)。常用的Log算子是55的模块,如图所示。在Log算子中,对边缘判断采用的技术是零交叉检测,把零交叉检测推广一下,我们只要在检测前用指定的滤波器对图像进行滤波,然后再寻找零交叉点作为边缘。对于Log算子,edge函数的调用格式为
9、:BW=edge(I,log)用Log算子自动选择阈值进行边缘检测。BW=edge(I,log,thresh)根据制定的敏感阈值thresh,用log算子进行边缘检测,edge函数忽略了所有小于阈值的边缘。如果没有指定阈值thresh或为,函数自动选择参量值。BW=edge(I,log,thresh,sigma)用参量sigma指定Log滤波器标准偏差,sigma的缺省值为2,滤波器的大小为nn,这里n=cell(sigma*3)*2+1.BW,threshold=edge(I,log,)返回阈值thresh和边缘检测图像BW。零交叉检测:BW=edge(I,zerocross,thresh,
10、h)用滤波器h指定零交叉检测法。参量thresh为敏感阈值。如果没有指定阈值thresh或为,函数自动选择参量值。BW,thresh=edge(I,zerocross,)返回阈值thresh和边缘检测图像BW。5.程序代码一微分算子代码I = imread(rice.png);BW1 = edge(I,roberts);% 以自动阈值选择法对图像进行Roberts算子检测BW1,thresh1 = edge(I,roberts);% 返回当前Roberts算子边缘检测的阈值disp(Roberts算子自动选择的阈值为:)disp(thresh1)subplot(121),imshow(BW1)
11、;title(自动阈值的Roberts算子边缘检测)BW1 = edge(I,roberts,0.05);% 以阈值为0.05对图像进行Roberts算子检测subplot(122),imshow(BW1);title(阈值为0.05的Roberts算子边缘检测)BW2 = edge(I,sobel);% 以自动阈值选择法对图像进行Sobel算子检测figure,subplot(131),imshow(BW2);title(自动阈值的Sobel算子边缘检测)BW2,thresh2 = edge(I,sobel);% 返回当前Sobel算子边缘检测的阈值disp(Sobel算子自动选择的阈值为:
12、)disp(thresh2)BW2 = edge(I,sobel,0.05,horizontal);% 以阈值为0.05水平方向对图像进行Sobel算子检测subplot(132),imshow(BW2);title(阈值0.05水平方向Sobel算子)BW2 = edge(I,sobel,0.05,vertical);% 以阈值为0.05垂直方向对图像进行Sobel算子检测subplot(133),imshow(BW2);title(阈值0.05垂直方向Sobel算子)BW3 = edge(I,prewitt);% 以自动阈值选择法对图像进行Prewitt算子检测figure,subplot
13、(131),imshow(BW3);title(自动阈值的Prewitt算子边缘检测)BW3,thresh3 = edge(I,prewitt);% 返回当前Prewitt算子边缘检测的阈值disp(Prewitt算子自动选择的阈值为:)disp(thresh3)BW3 = edge(I,prewitt,0.05,horizontal);% 以阈值为0.05水平方向对图像进行Prewitt算子检测subplot(132),imshow(BW3);title(阈值0.05水平方向Prewitt算子)BW3 = edge(I,prewitt,0.05,vertical);% 以阈值为0.05垂直方
14、向对图像进行Prewitt算子检测subplot(133),imshow(BW3);title(阈值0.05垂直方向Prewitt算子)二Log算子代码I = imread(rice.png);BW1 = edge(I,log);% 以自动阈值选择法对图像进行Log算子检测BW1,thresh1 = edge(I,log);% 返回当前Log算子边缘检测的阈值disp(Log算子自动选择的阈值为:)disp(thresh1)subplot(121),imshow(BW1);title(自动阈值的Log算子边缘检测)BW1 = edge(I,log,0.005);% 以阈值为0.005对图像进行
15、Log算子检测subplot(122),imshow(BW1);title(阈值为0.005的Log算子边缘检测)6.运行结果通过理论与编程实践,我完成了这次设计的任务,其运行结果如图所示:效果如图所示:根据结果分析可以得出,图像的锐化处理可以使图像的边缘更加清晰,阈值的设定是图像分割依据,根据阈值可以将图像分为背景和目标两个部分,经过微分算子或拉普拉斯算子可以将图像的边缘提取出来,实现图像的锐化。7.参考文献1张汗灵编著 MATLAB在图像处理中的应用/ 北京:清华大学出版社,20082王家文 MATLAB 6.5 图形图像处理 国防工业出版社3王晓丹,吴崇明编著 基于MATLAB的系统分析
16、与设计 西安电子科技大学出版社 2000 4余成波编著 数字图像处理及MATLAB实现 重庆大学出版社 2003 5杨枝灵, 王开等编著 Visual C+数字图像获取处理及实践应用 人民邮电出版社 2003 6苏彦华等编著 Visual C+数字图像识别技术典型案例 人民邮电出版社 2004 7何斌等 编著 Visual C+数字图像处理 人民邮电出版社 2002 8周金萍编著 MATLAB 6.5图形图像处理与应用实例 科学出版社 2003 TP391.41/0447 9清源计算机工作室编著 MATLAB 6.0高级应用:图形图像处理机械工业出版社 2001 TP391.41/ 10郝文化主编 MATLAB图形图像处理应用教程 中国水利水电出版社 200411苏金明, 王永利编著 MATLAB图形图像电子工业出版社 2005
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1