ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:988.20KB ,
资源ID:8311496      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8311496.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(彩色图像的边缘检测.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

彩色图像的边缘检测.docx

1、彩色图像的边缘检测摘要视觉是人类从大自然获取信息的主要来源。据统计在人类获取的信息当中,视觉信息约占60%,图像正是人类获取视觉信息的主要途径。边缘是图像最基本的特征之一。Poggio说:“边缘具有十分令人满意的性质,它能大大的减少所要处理的信息但是又保留了图像中物体的形状信息”。 边缘检测作为一个初级视觉处理过程,有着很长的研究历史,学术思想非常活跃,新方法、新理论不断涌现。其原因一方面是由于课题本身的重要性,另一方面也反映了这个课题的深度和难度。至今发展的有关边缘检测的理论和方法很多,但都是各有各的优点,均有待进一步的改进和发展。本文主要是针对彩色图像的边缘检测进行研究及其实现手段。关键词

2、:MATLAB SOBEL算子 边缘检测 输出融合 第一章 绪论1.1引言视觉是人类从大自然获取信息的主要来源。据统计在人类获取的信息当中,视觉信息约占60%,图像正是人类获取视觉信息的主要途径。边缘是图像最基本的特征之一。Poggio说:“边缘具有十分令人满意的性质,它能大大的减少所要处理的信息但是又保留了图像中物体的形状信息”。边缘检测作为一个初级视觉处理过程,有着很长的研究历史,学术思想非常活跃,新方法、新理论不断涌现。其原因一方面是由于课题本身的重要性,另一方面也反映了这个课题的深度和难度。至今发展的有关边缘检测的理论和方法很多,但都是各有各的优点,均有待进一步的改进和发展。边缘检测的

3、发展可以追溯到二十世纪六十年代,Roberts在1965年提出的基于梯度的边缘检测是迄今为止仍然适用的一种有效的算法,二十世纪七十年代的Prewitt算子,Kirsh算子,Robinson算子等。这些传统的边缘检测算子大部分为局域窗口梯度算子,由于它们对噪声很敏感,所以对实际图像的处理效果并不尽如人意。近二十年来很多学者采用了不同的方法研究图像边缘检测及其抑噪效果。其中1986年Canny提出的最佳边缘检测算子,以其在处理受高斯白噪声污染的图像方面的良好效果而成为其它边缘检测算子性能评价的标准。从边缘检测研究进程来看,可以看到对边缘检测的研究有几个明显趋势:一是对原有算法的不断改进,而是新方法

4、、新概念的引入和多种方法的有效综合运用。人们逐渐意识到现有的任何一种单独的边缘检测算法都难以得到令人满意的边缘图像,因而很多人在把新方法和新概念不断的引入边缘检测领域的同时,也更加重视把各种方法综合起来运用。在新出现的检测方法中,基于小波变换的边缘检测方法就是一种很好的方法。三是交互式检测研究的深入。四是对特殊图像边缘检测的研究越来越得到重视。五是对图像边缘检测评价的研究和对评价系数的研究越来越得到关注。相信随着研究的不断深入,存在的问题会很快得到圆满的解决。本文主要是针对彩色图像的边缘检测进行研究及其实现手段。1.2课题研究目的和意义彩色图像比灰度图像多了颜色信息。在实际生活中,当寻找物体、

5、人、纹理或者边缘等时,一般情况下,第一点就是理解图像的内容,在此过程中往往忽略图像的颜色,这也是当前大部分计算机视觉应用仅仅基于亮度的原因。那么,彩色图像中的颜色信息到底有什么用处?其实现实生活中很多例子都可以证明颜色信息的重要性,比如色盲无法正确的区分某些颜色物体,如果失去了颜色信息,交通灯也就无法发生任何作用,人们也就有可能把物体的影子当成实际存在的物体等。其实在一个有颜色的世界中,颜色提供了远比亮度更为丰富的信息,就本文而言,颜色扮演了一个非常重要的角色。主要体现在如下三个方面:1.与灰度边缘检测算法相比,彩色图像边缘检测算法能够提供更多的边缘信息。特别是对于有些物体边缘,亮度相同而颜色

6、不同,用传统的灰色图像边缘检测算法将失去作用,见图1.1,其中1.1(a)的square原图是亮度相同而颜色不同的正方格形图案,1.1(b)为彩色Canny边缘检测结果,1.1(c)为灰度Canny边缘检测结果,由检测结果可以看到,彩色边缘检测法能检测到灰度图像不能检测到的边缘。研究发现,灰度边缘检测算法能得到90%的彩色图像边缘信息,但仍然剩下10%的边缘信息需要利用颜色信息才能得到。因此非常有必要寻找更加有效的边缘检测算法以提高质量的边缘信息。2.能够利用彩色图像中的颜色信息区分各种不同类型的边缘,而在灰度图像中,基本不可能完成此区分任务,这也是彩色图像相对于灰度图像的一大优势。各种不同类

7、型的边缘如图1.2所示。在计算机视觉等应用中,必须区分这些边缘。比如在立体视觉中,只需要对物体边缘、反射物边缘和照边度边缘进行匹配即可。在物体检测中,只需要知道物体边缘和遮挡边缘即可。3.边缘检测和分类最好能够模拟人类视觉处理机制,这样则可得到最好的结果。而人类视觉倾向于用色调、饱和度(颜色信息)和亮度共同描述彩色物体,所以颜色信息不可或缺,在实际生活中,从颜色图像的输入(如CCD),颜色图像的显示(如显示器)到颜色图像的输出(如颜色打印机)等,彩色图像都得到了最普遍的应用,所以针对彩色图像进行相关研究也就更有实际意义。在实际生活中,从颜色图像的输入(如CCD)颜色的显示(如显示器)到颜色图像

8、的输出(如颜色打印机)等,彩色图像都得到了最普通的应用,所以针对彩色图像进行相关研究也就更有意义。实际中的图像远比图1.1所示的图像复杂,如图1.3所示,该图像包括了阴影区、高亮区和各种颜色值区域。图1.3(c)为经典的边缘检测算法的检测结果,经典算法结果包括了各种不同类型的边缘,如物体边缘、阴影边缘、高亮边缘和材料边缘等,算法得到的边缘远多于人类视觉的分割结果,见图1.3(b)。由图可以看到,人类视觉能够有选择的丢弃干扰物体识别的边缘,如阴影边缘和高亮边缘等。本文的目标就是尝试使用计算机视觉处理达到或趋近于人类视觉的分割结果。该目标要求处理过程中不仅要能正确的检测边缘,还要求能正确的区分各种

9、不同类型的边缘。第二章 彩色图像边缘检测彩色图像边缘检测算法基本都是基于边缘模型的算法。可分为输出融合法、多为梯度法和向量方法三类。本文主要介绍简单的灰度转换法和输出融合法。2.1设计思想首先设计一个界面,其功能为:将目标图像的途径输入空白框,然后点击相关按钮,完成边缘检测的面目的。在运用灰度转换法时,先点击“灰度转换”按钮,再用相关算子进行边缘检测;在运用输出融合法时依次点击相关算子按钮,则界面输出对应的处理后的图像。界面如图2-1所示。界面源程序见附录。2.2灰度转换法研究发现,灰度边缘检测算法能得到90%的彩色图像边缘信息,而且基于灰度图像的边缘检测方法早已成熟,所以对于信息含量较少的彩

10、色图像可以先将图像转换为灰度图像,然后再运用灰度图像的边缘检测手段进行边缘检测。可以运用matlab按如下程序实现:A=imread(1.bmp);A=rgb2gray(A);subplot(2,2,1),imshow(A);title(灰度图像)%将彩色图像转换为灰度图像b=edge(A,roberts,0.02);%设阀值为0.02 subplot(2,2,1),imshow(b); title(roberts算子)%对转换后的灰度图像进行边缘检测运行结果如下图所示:原图Sobel算子勾边2.3输出融合方法 在彩色图像边缘检测算法中,最早出现的就是融合方法。由于灰度图像边缘算法的相对成熟,

11、把灰度图像边缘检测算法扩展到彩色图像中就变成一个很自然的过程。在输出融合方法中,灰度图像边缘检测算法分别应用于彩色图像的各个颜色分量中,然后对各个分量的结果进行合并,从而得到最后的边缘。如对一个RGB彩色图像来说,输出融合方法原理框图如图2.1所示: 这里梯度和边缘的计算就可以应用所有灰度图像边缘检测算子和算法,如经典的Sobel、Canny、LOG等算子,多尺度的小波边缘检测算法等。最后的输出边缘,主要是对各个分量的一个加权合成输出。Nevatiat提出了最早的输出融合方法,该算法把Hueckel算子用在了亮度分量和两个色度分量上。而之后的输出融合方法大同小异,基本都是对灰度图像边缘检测、颜

12、色空间和各分量权重进行重新选择和组合而已。在输出融合方法中,首先存在一个边缘“不适定”的问题,即到目前为止对边缘仍然没有一个较好的定义,主流的定义方法有两种。一种是亮度部分由边缘即为彩色图像的边缘,这种定义忽略了色度和饱和度可能的不连续性,造成边缘检测的偏差,并且根据Novak和Shafer的研究得出灰度边缘检测算法能得到90%的彩色图像边缘信息,而仍然剩下10%的边缘信息无法检测到,需要利用颜色信息才能得到。第二种定于只要任何一个颜色分量有边缘即为图像边缘,这种定义会造成边缘检测的不准确。这两种定于的检测结果依赖于所使用的颜色空间,都忽略了颜色分量之间的相关关系,容易丢失边缘,所以难以获得好

13、的结果。在输出任何方法中选择经典的Sobel、Canny和多尺度的小波(Wavelet)做性能对比试验如图2.2所示,图2.2(e)(h)为添加2%椒盐噪声的原图和检测结果图。Sobel和Canny各分量的边缘检测使用matlab库函数的edge函数,各参数值均为edge函数的默认参数值,本文Wavelet则采用效果较好的B样条函数的一阶导数模拟小波函数而得。边缘定义为只要在其中的某一个颜色分量上存在边缘,则为彩色图像边缘。由图2.2(b)可以看到,Sobel算子丢失了更多的边缘。Canny算子是灰度图像边缘检测中事实上的标准,在灰度图像中可以较准确的检测边缘,特别的能对细节边缘进行很好的检测

14、,但是由于在彩色图像中对边缘的“不适定”问题,在检测结果中出现了明显的错误边缘,在没有边缘的地方产生了边缘,如图2.2(c)所示,Wavelet的主要优势是可以通过尺度变化检测在不同尺度下的边缘,大尺度检测轮廓边缘,小尺度检测细节边缘,所以相比于其它空间域算法,可以得到更好的检测结果,如图2.2(d)所示。在抗噪声性能方面,Sobel、Canny、Wavelet都对噪声敏感,如图2.2(f)(h)所示。在这里需要说明的是由于这三种算法都是基于梯度的最大值求取检测边缘,所以对各分量都需要一个阈值(设为T)。但是由于Sobel和Canny算法都直接应用了edge函数的默认参数设置,所以没有标出阈值

15、。Wavelet对各分量都直接取梯度的均值作为T,但由于三个分量各有一个阈值T,所以在图2.2(h)中也没有标出阈值。运用matlab运行下面的程序,可以直接检测彩色图像边缘。源程序如下:A=imread(1.bmp);R=double(A(:,:,1);G=double(A(:,:,2);B=double(A(:,:,3);h1=-1 -2 -1;0 0 0;1 2 1;Rx=conv2(R,h1);Gx=conv2(G,h1);Bx=conv2(B,h1);rgbx=cat(3,Rx,Gx,Bx);subplot(2,2,1),imshow(rgbx,);图像运行结果如下图所示:第三章 课

16、设心得 通过这次的课程设计,我受益匪浅,不仅对图像处理这门课程有更深入的掌握,还学到其他方面的知识,同时也摆脱枯燥的理论学习,从中体会到这门课程的乐趣。在准备课程设计的过程中,遇到许多的困难,但从不感到灰心,因为在做的过程中,同学们都是在一起相互讨论,遇到困难就找同法学,在这种集体的学习氛围下,之感受到学习带来的快乐。通过此次的设计,体会到只有通过实践,才知道他魅力所在,才能更加深入的掌握,同时也在培养自己独立思考和解决问题的能力,也增强锻炼动手、实践能力。 通过这段时间的课程设计,同时也使我懂得了理论与实际结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论

17、中得出结论,才能真正提高自己对理论知识的熟练掌握和运用。在设计的过程中也遇到了很多问题。才发现原来自己有如此多的不足之处,对以前学过的知识理解的不够深刻,也掌握的不过牢固。 在做课程设计的过程中,对书本上的理论知识有了进一步的理解,对于一些似懂非懂的部分,通过再一次看书,编写程序,调试结果,并对结果进行分析,也理解了。但是,感觉自己对于理论的实际运用还是比较欠缺。同时知道了学习知识的方法,学习理论不是一味的看书,理论应该建立在实践的基础上,通过编写程序去实现某个功能,对相应知识有了更进一步的了解,有助于理论的学习。 通过做这次课程设计,对MATLAB有了初步了解,知道了MATLAB的一些用途,

18、老师在课堂是也讲了一些简单的MATLAB的用法,但是在做设计的过程中才知道那些远远不过,所以又花了很多时间去找那些函数怎么用,但有许多细节如一些语句等,由于时间关系还是不太明白,需要今后加以学习。在做课程设计过程中,发现什么事不能等别人,自己需要尽自己的努力去做,又不明白的地方要及时去问,还有学会利用身边各种资源比如图书馆,网络等,什么事情没有亲自去做,不要妄下结论,不要认为自己不行,只有做了才知道其实一些事只要自己认真做了事可以办的。同时课程设计培养了我独自处理问题的能力以及做事的态度。俗话说:态度决定一切。只有有端正的态度,才能尽心的去做。才有可能成功。 这次课程设计终于顺利完成,在设计中

19、遇到的运行和调试问题,最后在老师的耐心指导下,终于迎刃而解。在以后的学习过程中我要不断学习,不断丰富自己的知识。这次课程设计的顺利完成,让我明白我自己的不足。在以后的学习过程中我会更加的努力,不断丰富自己的知识。附录:function varargout = MY2(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, MY2_OpeningFcn, . gui_OutputFcn, MY2_OutputFcn, .

20、 gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction MY2_OpeningFcn(hObject, eventdata, handles, varargin)handles.output =

21、 hObject;guidata(hObject, handles);function varargout = MY2_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function pushbutton4_Callback(hObject, eventdata, handles)fname,pname = uigetfile;global a;a=imread(fname);subplot(2,2,1),imshow(a); title(原图)function pushbutton5_Callback(h

22、Object, eventdata, handles)global a;A = a;A=rgb2gray(A);subplot(2,2,1),imshow(A);title(灰度图像)function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc&isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,Backgr

23、oundColor,white);endfunction edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc&isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunction pushbutton1_Callback(hObject, eventdata, ha

24、ndles)global a;A = a;A=rgb2gray(A);F=str2double(get(handles.edit1,string);b=edge(A,roberts,F); subplot(2,2,1),imshow(b); title(roberts算子)function pushbutton2_Callback(hObject, eventdata, handles)global a;A=a;A=rgb2gray(A);F=str2double(get(handles.edit1,string);b=edge(A,prewitt,F);subplot(2,2,1),imsh

25、ow(b);title(prewitt算子)function pushbutton3_Callback(hObject, eventdata, handles)global a;A = a;A=rgb2gray(A);F=str2double(get(handles.edit1,string);b=edge(A,sobel,F);subplot(2,2,1),imshow(b);title(sobel算子)function pushbutton6_Callback(hObject, eventdata, handles)global a;A=a;R=double(A(:,:,1);G=doub

26、le(A(:,:,2);B=double(A(:,:,3);h1=-1 -2 -1;0 0 0;1 2 1;Rx=conv2(R,h1);Gx=conv2(G,h1);Bx=conv2(B,h1);rgbx=cat(3,Rx,Gx,Bx);subplot(2,2,1),imshow(rgbx,);function pushbutton7_Callback(hObject, eventdata, handles)global a;A=a;R=double(A(:,:,1);G=double(A(:,:,2);B=double(A(:,:,3);h1=-1 0 -1;-2 0 -2;-1 0 -1

27、;Rx=conv2(R,h1);Gx=conv2(G,h1);Bx=conv2(B,h1);rgbx=cat(3,Rx,Gx,Bx);subplot(2,2,1),imshow(rgbx,);function pushbutton8_Callback(hObject, eventdata, handles)global a;A=a;R=double(A(:,:,1);G=double(A(:,:,2);B=double(A(:,:,3);h1=1 1 1;1 -8 1;1 1 1;Rx=conv2(R,h1);Gx=conv2(G,h1);Bx=conv2(B,h1);J=cat(3,Rx,Gx,Bx);subplot(2,2,1),imshow(J,);参考文献1、 数字图像处理学 电子工业出版社 贾永红 20032、 数字图像处理(Matlab版) 电子工业出版社 冈萨雷斯 20063、 其他数字图像处理和Matlab编程方面的书籍及相关学习资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1