图像边缘检测系统设计参考模板_第1页
图像边缘检测系统设计参考模板_第2页
图像边缘检测系统设计参考模板_第3页
图像边缘检测系统设计参考模板_第4页
图像边缘检测系统设计参考模板_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号 数字图像处理 课程设计说明书图像边缘检测系统设计起止日期: 2016 年 12 月 5 日 至 2016 年 12 月 9 日学生姓名班级13电信科1班1 / 21成绩指导教师(签字)计算机与信息工程学院电子信息工程系2016年12月9日课程设计任务书20162017学年第一学期计算机与信息工程学院 电子信息与科学技术 专业 1 班级课程设计名称: 数字图像处理课程设计 设计题目: 图像边缘检测系统设计 完成期限:自 2016 年 12 月 5 日至 2016 年 12 月 9 日共 1 周一、课程设计依据在掌握数字图像处理基本算法的基础上,利用MATLAB、VC+、Java等编程语言

2、设计具有指定功能的图形用户界面。二、课程设计内容1、设计一个实现图像边缘检测功能的界面2、界面可以采用MATLAB、VC+、Java等编程语言设计3、要求界面能够读入并显示图片,通过各种控件选择并进行图像的边缘检测操作,操作结果在对比窗口中显示4、图像边缘检测功能至少包括单方向一阶微分检测(水平/垂直方向)、无方向微分检测(Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子)等,每项功能可采用一个或多个算法实现三课程设计要求1、 要求每个同学独立完成设计任务。2、 课程设计说明书封面格式要求见课程设计说明书格式要求。3、 课程设计的说明书要求简洁、通顺,

3、图像表达内容完整、清楚、规范。4、 课程设计说明书要求:1) 说明题目的设计原理和思路、采用方法及设计流程。2) 可采用图表或文字对图形用户界面各子模块的功能以及各子模块之间的关系做较详细的描述。3) 详细说明代码的编写流程。4) 采用图像及文字详细说明各功能的演示结果。指导教师(签字): 系主任(签字): 批准日期:2016年 12月 1日目 录第1章 总体设计11.1 设计目的11.2 设计方案1第2章GUI界面设计22.1 启动GUI界面22.2 控件设计3第3章 运行结果及主要程序63.1 边缘检测的步骤及结果63.2 主要程序8总 结11参考文献12第1章 总体设计1.1 设计目的设

4、计一个实现图像边缘检测功能的界面,通过各种控件选择并进行图像的边缘检测操作,操作结果在对比窗口中显示,完成一个简单的图片处理。1.2 设计方案先通过GUI可视化界面窗口设计一个对用户使用起来相对方便的界面布局,然后针对界面上的每一个控件进行脚本函数的编写,以实现每一个控件的相应功能。需要实现的功能:图片的读取与显示,图片的对比显示和存储,彩色图片到灰度图像的转换,图片的各种算子边缘检测并显示(Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子等),并增加了退出程序按钮,最终生成一个可执行软件。软件的总体设计界面布局如图1-1所示,主要分为2个部分:显示区

5、域与操作区域。 显示区域:显示载入原图,以及通过处理后的图像。 操作区域:通过功能键实现对图像的各种处理。在截图中可见,左部为一系列功能按键有“读取图片”、“二值化”、“灰度化”三个按钮。界面右部分为图片显示部分,下方有“存储图片”、“退出”功能键。界面中间方为系列功能切换选择组包括单方向一阶微分检测(水平/垂直方向)、无方向微分检测(Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子)等。图1-1 设计界面图第2章GUI界面设计2.1 启动GUI界面 通过单击MATLAB菜单项“Home”->“New”->“Graphical User I

6、nterface”,显示GUI开发环境的启动窗口,也可在命令窗口输入命令:guide打开GUIDE启动界面,如下图2-1所示。弹出GUIDE Quick Start对话框,如图2-2所示。选择Blank GUI,打开版图编程器如图2-3。图2-1 命令窗口图2-2 GUI启动窗口图2-3 版图编辑器2.2控件设计1. button按钮 利用版图编辑器在布局区添加按钮,双击控件调出属性编辑器,对其进行属性设计。String表示控件的显示信息,Tag表示控件的唯一标识符。图2-4按钮控件的设置 右击button选择“Callback”选项,定位该控件的回调函数。如下图所示。图2-5查看button

7、回调函数回调函数初始代码:function pushbutton3_Callback(hObject, eventdata, handles)pushbutton3_Callback是按钮的回调函数,Callback函数是当用户每次触发GUI对象时执行的回调函数;hObject为当前回调函数对应的GUI对象的句柄; eventdata表示事件代码;handles为当前GUI所有数据的结构体,包含所有GUI对象的句柄和用户定义的数据。2. 按钮组 为方便编程,采用按钮组进行算法实现,利用版图编辑器的按钮组,添加单选按钮到按钮组。如图2-6所示。图2-6按钮组 右击按钮组选择SelectionCh

8、angeFcn选项,定位该控件的回调函数,如图2-7所示。图2-7查看按钮组回调 回调函数初始代码:function uipanel1_SelectionChangeFcn(hObject, eventdata, handles),程序代码见附录。 搭建结果界面截图如2-6所示。图2-8 设计界面图 设计完成后运行的软件界面如图2-9所示,点击按钮组里算法选项可看到程序运行结果,程序见附录。图2-9 运行界面图第3章 运行结果及主要程序3.1边缘检测的步骤及结果 一般来说,边缘检测的算法有如下四个步骤: 1)滤波:边缘检测算法主要是基于图像增强的一阶和二阶导数,但导数的 计算对噪声很敏感,因此

9、必须使用滤波器来改善与噪声有关的边缘检测器的性能。 2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度之有显著变化的点突显出来。边缘增强一般都是通过计算梯度幅值来完成的。 3)检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。4)定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。图3-1 算子运行结果(1)图3-2 算子运行结果(2)1.一阶微分作为坐标点(x,y)处的灰度倾斜度的一阶微分值,可

10、以用具有大小和方向的向量表示如下:其中,为x方向的微分,为y方向的微分。和在数字图像中是用下式计算的:微分值和被求出后,由以下的公式就能算出边缘的强度与方向。强度:或者 ,方向:向量的朝向。2. Roberts算子,边缘定位精度较高,但容易丢失一部分边缘,同时图像没经过平滑处理,所以不具备抑制噪声的能力。该算子适用于具有陡峭边缘且含噪声少的图像。3. Sobel算子和Prewitt算子,对噪声具有一定抑制能力,但不能完全排除虚假边缘。定位效果不错但容易产生多像素边缘。4.LOG算子,抑制噪声会将尖锐的边缘平滑掉而无法被检测到。当高斯滤波器宽度参数取值较小时,边缘定位精度高,但图像平滑作用较弱;

11、增大取值时,又导致模板增大,使边缘位置偏移严重,且运动量增加。5.Canny算子,当弱边缘和强边缘相连时,才输出弱边缘,检测效果要比LOG算子好。6.拉普拉斯算子,不依赖于边缘方向的二阶微分算子,定位准确,对噪声非常敏感,使噪声加强,从而使部分信息丢失,造成一些不连续的边缘。 由上可知,算子不同,结果存在明显差异,但是在原始图像上边缘明显的部分都被有效的提取出来了。Roberts算子检测出的边缘线比较清晰,但噪声大多也同时提取出来了。对于模糊部分取差分间隔宽的Sobel算子和Prewitt算子似乎有效。Canny算子可以检测到弱边缘,但受阴影的影响较大。LoG算子易于强化噪声,更适用于点状物的

12、检测和图像锐化。3.2主要程序 1.读取图片程序,定义可读取“.jpg.bmp.gif.png”属性的图片,读取图片到axes1坐标轴中显示。function pushbutton1_Callback(hObject, eventdata, handles)global imfilename,pathname = . uigetfile('*.jpg''*.bmp''*.gif''*.png','选择图片');str=pathname filename;im=imread(str);axes(handles.axe

13、s1);imshow(im); 2.存储图片程序,存储axes2坐标轴的结果图像到自定义路径,可选择存储属性为“.bmp.tif.png”。function pushbutton4_Callback(hObject, eventdata, handles)global im %定义全局变量filename,pathname,filterindex=. uiputfile('*.bmp''*.tif''*.png','save?picture');%存储图片路径if isequal(filename,0)|isequal(pathn

14、ame,0) return%如果取消操作,返回else str=pathname filename;%合成路径+文件名 axes(handles.axes2);%使用第二个axes im=getimage(handles.axes2);imwrite(im,str);%写入图片信息,即保存图片end 3.关闭窗口程序。function pushbutton5_Callback(hObject, eventdata, handles)close(gcf)%关闭当前Figure窗口句柄 4.按钮组功能 ,当选择按钮组中不同算法变换时,用switch语句进行算法的选择进行图像变换,显示结果在axes

15、2坐标轴中。function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)global imm,n,o=size(im);if o>1 im=rgb2gray(im); R=double(im)/255;else R=double(im)/255;endstr=get(hObject,'string');axes(handles.axes2);switch str case 'Initial' imshow(im) case 'directionX' a=-1 -2 -1;

16、0 0 0;1 2 1/256;b=-1 0 1; -2 0 2; -1 0 1/256; BW=conv2(im,a,'same');BW=abs(BW);%处理水平方向算子的结果 imshow(BW); case 'directionY' a=-1 -2 -1;0 0 0;1 2 1/256;b=-1 0 1; -2 0 2; -1 0 1/256; BW=conv2(im,b,'same');BW=abs(BW);%处理垂直方向算子的结果 imshow(BW); case 'directionXY' a=-1 -2 -1;0

17、 0 0;1 2 1/256;b=-1 0 1; -2 0 2; -1 0 1/256; BW1=conv2(im,a,'same');BW1=abs(BW1);%处理水平方向算子的结果? BW2=conv2(im,b,'same');BW2=abs(BW2);%处理垂直方向算子的结果? BW=max(BW1,BW2);%取水平及垂直方向上的大值 imshow(BW); case 'Roberts' BW = edge(im,'Roberts'); imshow(BW); case 'Sobel' BW = edg

18、e(im,'Sobel'); imshow(BW); case 'Prewitt' BW = edge(im,'Prewitt'); imshow(BW); case 'LoG' BW = edge(im,'LoG'); imshow(BW); case 'Canny' BW = edge(im,'Canny'); imshow(BW); case 'Laplacian' a=0 1 0;1 -4 1;0 1 0/56; BW=conv2(im,a,'same

19、'); BW=abs(BW); imshow(BW);end 5.图像二值化,利用2bw进行图像二值化转化,并将转换结果在axes2 坐标轴中显示。function pushbutton2_Callback(hObject, eventdata, handles)global imaxes(handles.axes2);BW=im2bw(im,0.4);imshow(BW); 6.灰度图像转化,判断所读取图像是否为彩色图像,如果是则转化为灰度图像,并在axes2 坐标轴中显示转换结果图像。function pushbutton3_Callback(hObject, eventdata,

20、 handles)global imm,n,o=size(im);if o>1 BW=rgb2gray(im); R=double(im)/255;else BW=im;endaxes(handles.axes2);imshow(BW);总 结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,软件方面的应用已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为大学来说掌握各种软件的应用是十分重要的。数字图像处理是我们这个学期的重点课程。在没有做课程设计以前觉得课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论