您好,欢迎访问三七文档
沈阳理工大学数字图像处理课程设计报告I课程设计任务书学院信息科学与工程专业电子信息工程学生姓名张楠楠学号G603030105设计题目图像的锐化处理内容及要求:利用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沈阳理工大学数字图像处理课程设计报告3图像的锐化处理1.课程设计目的(1)加深对图像的锐化处理基本理论知识的理解。(2)培养独立开展科研的能力和编程能力。(3)掌握基本图像锐化处理的过程及其应用。2.课程设计要求(1)掌握课程设计的相关知识、概念清晰。(2)程序设计合理、能够正确运行。3.相关知识图像处理并不仅限于对图像进行增强、复原和编码,还要对同乡进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。描述一般针对图像或景物中的特定区域或目标。为了描述,首先要进行分割。边缘检测是图像分析中的重要内容。边缘是图像的最基本特征。所谓边缘,是指周围像素灰度有阶跃变化货屋顶变化的那些像素的集合。边缘广泛存在于物体于背景之间、物体与物体之间、基元与基元之间,因此它也是图像分割所依赖的重要特征。两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的表现。常见的边缘点有:①阶梯形边缘(Step-edge),即从一个灰度到比它高(或低)好多的另一个灰度;②屋顶形边缘(Roof-edge),它的灰度是慢慢增加(减少)到一定程度然后慢慢减小(增加);③线形边缘(Line-edge),它的灰度线性变化中出现灰度脉冲。边缘特点如图所示。沈阳理工大学数字图像处理课程设计报告4由于边缘是图像上灰度变化最剧烈的地方,传统的边缘检测就是利用了这一特点,对图像各个像素点进行微分或求二阶微分来确定边缘像素点。一阶微分图像的峰值处对应着图像的边缘点。根据数字图像的特点,处理图像过程中常采用差分来代替导数运算,对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。为了克服一阶导数的缺点,我们定义图像的梯度算子为:这是图像处理中最常用的一阶微分算法,式子中的F(j,k)表示图像的灰度值,图像梯度的最重要的性质是梯度的方向在图像灰度的最大变化率上,这恰好可以反映出图像边缘上的灰度变化。图像边缘提取的常用梯度算子有Robert算子、Sobel算子、Prewitt算子、拉普拉斯算子等。4.课程设计分析4.1微分算子对于数字图像而言,可用差分近似表示式,如下:为了便于编程和提高运算速度,在一般的应用条件下,上式可以简化为:相对的一阶差分为:沈阳理工大学数字图像处理课程设计报告5Robert算子的表达式为:这里,G[j,k]表示处理后(j,k)点的灰度值,F(j,k)表示处理前该点的灰度值。其实Robert算子的表达式可以有两种情况(一般以(b)为准),如图所示所对应的模板为:Sobel算子的表达式为:所对应的模板为:Prewitt算子所对应的模板为:MATLAB图像处理工具箱中,edge函数实现边缘检测的功能,下面分别介绍其调用沈阳理工大学数字图像处理课程设计报告6格式。对于Robert算子:BW=edge(I,‘roberts’)用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函数忽略了所有小于阈值的边缘,如果没有指定阈值thresh或为[],函数自动选择参数量BW=edge(I,‘sobel’,thresh,direction)指定Sobel算子边缘检测方向。参量direction的值为水平方向‘horizontal’、垂直方向‘vertical’或二者都是‘both’(缺省)。[BW,thresh]=edge(I,‘sobel’,…)返回阈值thresh和边缘检测图像BW。对于Prewitt算子:该算子edge函数的调用格式和Sobel算子一致。4.2Log算子拉普拉斯算子是一种二阶边缘检测算子,它是一个线性的、移不变的算子。定义为:图像经过二阶微分之后,在边缘出产生一个陡峭的零交叉,根据这个零交叉判断边缘。拉普拉斯算子一般采用的模板为:由于图像边缘处的一阶微分的极值点,图像边缘处的二阶微分应为零,确定零点的位置要比确定极值点容易得多,也比较精确。但二阶微分对噪声更为敏感。因此,在通常情况下,在对图像进行拉普拉斯算子边缘处理前,先对图像进行平滑滤波器处理,一般采用的是高斯滤波器。把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测的方法叫做高斯拉普拉斯算子(简称Log算子)。常用的Log算子是5×5的模块,如图所示。沈阳理工大学数字图像处理课程设计报告7在Log算子中,对边缘判断采用的技术是零交叉检测,把零交叉检测推广一下,我们只要在检测前用指定的滤波器对图像进行滤波,然后再寻找零交叉点作为边缘。对于Log算子,edge函数的调用格式为:BW=edge(I,‘log’)用Log算子自动选择阈值进行边缘检测。BW=edge(I,‘log’,thresh)根据制定的敏感阈值thresh,用log算子进行边缘检测,edge函数忽略了所有小于阈值的边缘。如果没有指定阈值thresh或为[],函数自动选择参量值。BW=edge(I,‘log’,thresh,sigma)用参量sigma指定Log滤波器标准偏差,sigma的缺省值为2,滤波器的大小为n×n,这里n=cell(sigma*3)*2+1.[BW,threshold]=edge(I,‘log’,…)返回阈值thresh和边缘检测图像BW。零交叉检测:BW=edge(I,‘zerocross’,thresh,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);title('自动阈值的Roberts算子边缘检测')BW1=edge(I,'roberts',0.05);%以阈值为0.05对图像进行Roberts算子检测subplot(122),imshow(BW1);title('阈值为0.05的Roberts算子边缘检测')BW2=edge(I,'sobel');沈阳理工大学数字图像处理课程设计报告8%以自动阈值选择法对图像进行Sobel算子检测figure,subplot(131),imshow(BW2);title('自动阈值的Sobel算子边缘检测')[BW2,thresh2]=edge(I,'sobel');%返回当前Sobel算子边缘检测的阈值disp('Sobel算子自动选择的阈值为:')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(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垂直方向对图像进行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);沈阳理工大学数字图像处理课程设计报告9%以阈值为0.005对图像进行Log算子检测subplot(122),imshow(BW1);title('阈值为0.005的Log算子边缘检测')6.运行结果通过理论与编程实践,我完成了这次设计的任务,其运行结果如图所示:效果如图所示:沈阳理工大学数字图像处理课程设计报告10根据结果分析可以得出,图像的锐化处理可以使图像的边缘更加清晰,阈值的设定是图像分割依据,根据阈值可以将图像分为背景和目标两个部分,经过微分算子或拉普拉斯算子可以将图像的边缘提取出来,实现图像的锐化。沈阳理工大学数字图像处理课程设计报告117.参考文献[1]张汗灵编著MATLAB在图像处理中的应用/北京:清华大学出版社,2008[2]王家文MATLAB6.5图形图像处理国防工业出版社[3]王晓丹,吴崇明编著基于MATLAB的系统分析与设计西安电子科技大学出版社2000[4]余成波编著数字图像处理及MATLAB实现重庆大学出版社2003[5]杨枝灵,王开等编著VisualC++数字图像获取处理及实践应
本文标题:图像锐化处理报告
链接地址:https://www.777doc.com/doc-7279187 .html