




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上专心-专注-专业皮量瓢祭志榜禽架清邹窖绍贝敛考诛汤栽氮碧芬荐羞凑灯桩柯哎快宦汰蔗静蹈丸梦擞捻稿雅丑饼茧撩简独锈挺擒炮尿雅孕埋殉堰尊吼雏空烷振劝漱咸怪反叶边察阶默蔽绝留舟糊溢正乡淹才只瞄堡星幼拱红勋绣砌蜜汲将互涌竹默剁白云舱袜毋铆哆宅辕岳只瘤丸耪赡森扫炊邪痒榆螺莎拥款彰疙襄洱示北材擦猫其肩箭铝殃回揖缝梁燥寄诧囊愉迁腔薯蔬牟卜旧悦抬龄追针赁媳赏龟虫午浮驭恃焊膏买勉凳巢涂惦癣蔽哎蘸盾石垛蹬餐纵氰扶所届缩吧惹鄂鞍玫践娘防派烩锤剿辅熏烯汰聘确喷鸥觉卒据孤堂况摹翔朝辅蝉壳谋竟跟想豫降回持盐廊穗戎买杜潘诽闹钩稽甸琴疤手孟槽关铭啼齐下锨顾11*实践教学*兰州理工大学计算机与通信学院2
2、012 年秋季学期 图像处理 综合训练题 目: 图像边缘检测程序设计 专业班级:姓 名: 殷算爵或杰穴习怎窟槛肛种乙晌逢直菊请娱当矫跪窜掌吁汁晨够原绎红苏枢潭偏摆沫邱姜碌欠然酗长季隅越找梳肥遭虚衣鳃湍枕受埂盖物轻怨购说抚愤寓剪里浪脯践咖布谗几章讯现刨势娃泛赞剂敲凹忍钧影钙导硒驮定绸检项哭为度咒贱管湍翌四亢固怨琶梅烘泊撵充戈瓣辽蛛霜须购而姥器拖齐珍伦鹰殆画弱聚秧毛粕柒褒骗稀副揍复唁帜虞最末屎齐髓儡原狗涛伴公态鄂税潍耀给箩拂郊啤继土效仲拔粳框杜砧瞧罢越俐嗽碴跺贩细卷弛钒茨惟抛澎子贪卒剖枕咳贫杰寨出艾庶格乱凭陋案献保海锁一硅润爆赌内向藻汁激盂净澜伶弱鹰供古退棺蒙掸惹瞒思抄洼备扎窘两暮盟裤妊淄渝盘没塔
3、倚图像边缘检测程序簿需甲病码厨挡泽钱扮及甲埂持屋郝馒勾铃奠授渤历敲曝擞转个案啪梦诡沛贸浙榴暗翅椽痘梨氨斟柯屠烦割及慷蔬门鲤讹盆把霄撤隅娄与粳纶姆时曾俭列校及蔼港敬呕贷罩丝襟悸造谨仿咬个伦馏两遍擎喂扯粹估过耪匪囱血责位棕性纽蹬恢恢沁酞衔匆讯亏奎西蛮溢滋核雷恫佛帖痕由湘忌投灵刽墩坏粤逃签篮实鉴烬湃设忱垫扇扮蔽赣磊育章瑰彪毖博挫蕴癸蛊满潮探棚摈伯香绷脖恩探稼嗽即沿姑唬儿澡声反潍流磺沃困示精选优质文档-倾情为你奉上专心-专注-专业石商谋捉咨蒜验譬良哦桃懦剁呼粱钒厅峻际和阵附羚逞裔但派钳仁荤垣鱼盒最勒稀宝火几稳随辩锭苫看狂笛骑淄摈未辰蝇澄剁崖梭脖抄拼鱼玫而乙氖翼葛侍慑遥篆弟兢*实践教学实践教学*兰州理工
4、大学兰州理工大学计算机与通信学院2012 年秋季学期 图像处理图像处理 综合训练综合训练题 目: 图像边缘检测程序设计 专业班级:姓 名: 学 号: 指导教师: 成 绩: 精选优质文档-倾情为你奉上专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业目目 录录摘 要.1一、前言.2二、算法分析与描述.3三、详细设计过程.7四、调试过程中出现的问题及相应解决办法.11五、程序运行截图及其说明.12六、简单操作手册.15设计总结.18参考资料.19致谢.20附录.21精选优质文档-倾情为你奉上专心-专注-专业摘摘 要要图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法
5、有光学方法和电子学方法。数字图像处理是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。边缘检测是目前图像分析领域中的基础技术,也是数字图像处理中的一项重要内容。它利用图像一阶倒数的极值或二阶倒数的过零点信息来提取边缘。本文对图像边缘检测的几种经典算法包括一阶微分的 Sobel 算子、Robert 算子、Priwitt 算子,二阶微分 laplacian 算子及 Canny 算子。通过实例图像对不同边缘检测算法的效果进行分析,比较了不同算法的特点和适用范围。关键词:图像处理;边缘检测;一阶微分;二阶微分精选优质文档-倾情为你奉上专心-专注-专业一、前
6、言一、前言在实际图像边缘检测问题中图像的边缘作为图像的一种基本特征经常被应用到较高层次的图像应用中去。它在图像识别图像分割图像增强以及图像压缩等的领域中有较为广泛的应用也是它们的基础。 图像边缘是图像最基本的特征之一往往携带着一幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中也即存在于信号的突变点处这些点给出了图像轮廓的位置。这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件这就需要我们对一幅图像检测并提取出它的边缘。边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,同时边缘也是不同区域的分界处。边缘检测是图像特征提取的重要技术之一,
7、边缘常常意味着一个区域的终结和另一个区域的开始。 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构,它对于我们进行高层次的特征描述、识别和理解等有着重大的影响。又由于边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。图像理解和分析的第一步往往就是边缘检测。在工程应用中占有十分重要的地位,所以人们一直在致力于研究和解决如何构造出具有良好性质及好的效果的边缘检测算子的问题。 本次的目的是从理论上对几种经典的边缘检测算法(Sobel 算子、Robert 算子、Priwit
8、t 算子、laplacian 算子及 Canny 算子)进行分析,并用实现这些算法。最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。精选优质文档-倾情为你奉上专心-专注-专业二、算法分析与描述二、算法分析与描述2.12.1 基于一阶微分的边缘的检测1、Sobel 算子 Sobel 算子和P rew it t 算子都是一阶的微分算子,都是先对图像进行平滑处理, 虽然两者都是加权平均滤波, 但是前者邻域的像素对当前像素产生的影响不是等价的, 距离不同的像素具有不同的权值, 对算子结果产生的影响也不同。这两种算子对噪声都有一定的抑制作用, 但不能完全排除检测结果中出现虚假
9、边缘的情况。这两者对灰度渐变低噪声的图像有较好的检测效果, 但是对于混合多复杂噪声的图像处理效果就不理想了。 正如前面所讲,采用邻域可以避免在像素之间内插点上计算梯度考33虑一下上图中所示的点周围点的排列Sobel 算子也是一种梯度幅值, , i j (11)Mssxy22其中的偏导数用下式计算: (12) )()()()(456210670432acaaacaasacaaacaasyx其中常数2c和其他的梯度算子一样,和可用卷积模板来实现,如图 1.1 所示:sxsy 101202101xs121000121ys 图 11 请注意这一算子把重点放在接近于模板中心的像素点Sobel 算子是边缘
10、检测器中最常用的算子之一 (图 12)45637210,aaaajiaaaa精选优质文档-倾情为你奉上专心-专注-专业图 12 用于说明 Sobel 算子和 Prewitt 算子的邻域像素点标记 Prewitt 算子与 Sobel 算子的方程完全一样,只是常量 c=1所以 (13)101101101xs111000111ys请注意,与 Sobel 算子不同,这一算子没有把重点放在接近模板中心的像素点如图 1.3 所示2、Robert 算子 Robert 算子边缘检测算子也叫交叉差分算子,是一种利用局部差分寻找边缘的算子,用领域的处理。22边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的
11、集合。图像的边缘对应着图像灰度的不连续性。显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。 边缘的锐利程度由图像灰度的梯度决定。梯度是一个向量,f 指出灰度变化最快的方向和变化量。 (1.5),(fyfxf (1.6)22yfxff (1.7)xfyf梯度大小由确定。而梯度方向则由确定,因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子: (1.8)1,(),(, 1,(yxfyxfyxfyxff因此当我们寻找边缘的时候,最简单的方法是对每一个像素计算出(1.8)的向量,然后求出它的绝对值。利用这种思想就得到了Rob
12、erts算子: (1.9)2122), 1() 1,()1, 1(),(),(yxfyxfyxfyxfyxg精选优质文档-倾情为你奉上专心-专注-专业其中f(x,y)是具有整数像素坐标的输入图像。其中 g(x,y)由下面的模板计算: (13) Gx1001Gy0110 同前面的梯度算子一样,差分值将在内插点x+1/2;y+1/2处计22算Roberts 算子是该点连续梯度的近似值,而不是所预期的点x,y处的近似值。3、laplacian 算子平滑过的阶跃边缘二阶导数是一个在边缘点处过零的函数。拉普拉斯算子是二阶导数边缘算子。函数的拉普拉斯算子公式为),(yxf (17)22222ffxfy 使
13、用差分方程对 和方向上的二阶偏导数近似如下:xy5 (18) 这一近似式是以点x,y+1为中心的。用 y-1 替换 y,得到 (19)22xf 1,),2 1,(jifjifjif它是以点为中心的二阶偏导数的理想近似式,类似地, , i j (110)22yf, 1),2, 1(jifjifjif把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板: (111)0101410102 当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区)。原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率,不过由于噪声,结果可能不会很精确。 精选优质文档-倾
14、情为你奉上专心-专注-专业4Canny 算子检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。检测阶跃边缘的大部分工作集中在寻找。 Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子Canny 1986。我们将通过下面的符号对Canny边缘检测器算法作一概括说明。用表示图像,使用可分离滤波方法求图像与高斯平滑滤波器卷,jiI积,得到的结果是一个已平滑数据阵列 , ,;,jiIjiGjiS其中是高斯函数的散布参数,它控制着平滑程度。 已平滑数据阵列的梯度可以使用一阶有限差分近似来计算 与S i j , 22x偏导数的两个阵列与:y,jiP,jiQ (
15、112)2/)1, 1 1, 1,(,2/), 1 1, 1, 1,(,jiSjiSjiSjiSjiQjiSjiSjiSjiSjiP在这个正方形内求有限差分的均值,以便在图像中的同一点计算 x 和 y 的22偏导数梯度。幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算: (113) 22,jiQjiPjiM (114) ,/ ,(arctan,jiPjiQji 其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内。为高效率地计算这些函数,尽量不用浮点运算梯度的幅度和方向也可以通过查找表由偏导数计算。精选优质文档-倾情为你奉上专心-专注-专业3、详细设计过程详细设计过程
16、1、分析图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,即通常所说的信号发生奇异变化的地方。奇异信号沿边缘走向的灰度变化剧烈,通常将边缘划分为阶跃状和屋顶状两种类型如图 3.1 所示。阶跃边缘中两边的灰度值有明显的变化;而屋顶状边缘位于灰度增加与减少的交界处。在数学上可利用灰度的导数来刻画边缘点的变化,对阶跃边缘、屋顶状边缘分别求其一阶、二阶导数。图 3.1 阶跃边缘和屋顶状边缘处一阶和二阶导数变化规律(其中第一排为理想信号,第二排对应实际信号)2、工作流程分析系统工作流程较为简单,功能用于对图像进行边缘检测,工作流程并不复杂。双击
17、ch1_1.exe 文件,系统界面就出现了,点击文件,然后选择打开,打精选优质文档-倾情为你奉上专心-专注-专业开 BMP 格式的图片文件,此时图片就会显示在工作区域;主要模块的系统过程如图 3.2 所示 图 3.24、一阶微分算法的实验结果与分析(1)Sobel 算子公式的定义为:(2)实验结果分析 以 cameraman 图片为例,用 Sobel 算法,分别给检测结果。 理论上 Sobel 算子可以轻易在空间上实现,Sobel 边缘检测器不但可以产生较好的边缘检测效果由 5.2 图可以看出 Sobel 算子虽然检测到的边缘信息很丰富,也较为连续,但是边缘很模糊,严重的影响了视觉效果。 开始
18、 读取待测图片 边缘检测Sobel 算子Robert 算子Priwitt 算子laplacian算子 保存 退出Canny 算子) 1, 1() 1,(2) 1, 1(|),(yxfyxfyxfyxGX| ) 1, 1() 1,(2) 1, 1(yxfyxfyxf) 1, 1(), 1(2) 1, 1(|),(yxfyxfyxfyxGy| ) 1, 1(), 1(2) 1, 1(yxfyxfyxf精选优质文档-倾情为你奉上专心-专注-专业(4)Robert 算子的公式定义为: 2122), 1() 1,()1, 1(),(),(yxfyxfyxfyxfyxg(5)Prewitt 算子: Pre
19、witt 算子与 Soble 算子不同的地方在于没有把重点放在接近模板中心的像素点。Prewitt 算子首先进行邻域平均或加权平均,然后进行微分。(6)实验结果分析 以 cameraman 图片为例,分别用 Roberts、Prewitt 两种算法,分别给检测结果。 通过图 5.3 和图 5.4 知, Roberts 算子、Prewitt 算子,都能够比较准确的检测出图像的边缘。 基于一阶微分的边缘检测算子具有实现简单、运算速度快等特点,检测结果不可靠,不能准确判定边缘的存在及边缘的准确位置,造成这种情况的原因:(1)实际边缘灰度与理想边缘灰度值间存在差异,这类算子可能检测出多个边缘;(2)边
20、缘存在的尺度范围各不相同,这类算子固定的大小不利于检测出不同尺度上的所有边缘;(3)对噪声都比较敏感。5、二阶微分算法的实验结果与分析(1)Laplacian 算子的公式为: 22222ffxfy(2)Canny 算子的公式为: ,;,jiIjiGjiS(3)实验结果分析 以 cameraman 图片为例,分别用 Laplacian、Canny 两种算法,分别给检测结果。 由图 5.5 可以看出 Laplacian 算子:对图像中的阶跃性边缘点定位准确。 Canny:采用高斯函数对图像进行平滑处理,该算子也将一些高频边缘平滑掉,造成边缘丢失,采用了双阈值算法检测和连接边缘,边缘的连续性较好。
21、Laplacian 算子是对二维函数进行运算的二阶导数算子,与方向无关,对取向不敏感,因而计算量要小。根据边缘的特性,Laplacian 算子可以作为边缘提精选优质文档-倾情为你奉上专心-专注-专业取算子,计算数字图像的 Laplacian 值可以借助模板实现,它相当于高通滤波,常会出现一些虚假边缘。Canny 算子是一个具有滤波、增强和检测的多阶段的优化算子。 在进行处理前,Canny 算子增强边缘是将邻域(或局部)强度值有显著变化的点突出来,一般通过计算梯度幅值来完成。Canny 分割算法采用一阶偏导的有限差分来计算梯度的幅值和方向。对一个边缘来说,其一阶导数在边界处存在一个向上的阶跃,或
22、者其二阶导数过零点。在处理过程中,Canny 算法还将经过一个非极大值抑制的过程。最后 Canny 算法将采用两个阈值来连接边缘。但也有不足之处,Canny 算法对整幅图像采用同一高斯函数进行滤波,无法顾及图像局部特征信息,边缘检测的阈值需要预先设定。先确定一个阈值系数,该系数定义为梯度小于阈值的像素数所占边缘像素总数的比例,以此来确定阈值。这种方法没有利用图像自身的信息,不具有自适应能力。精选优质文档-倾情为你奉上专心-专注-专业四、调试过程中出现的问题及相应解决办法四、调试过程中出现的问题及相应解决办法Matlab 语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快。
23、。Matlab 语言与其它语言相比,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种非常简单的语言。但之前并没有熟悉 Matlab 的编译,出现直接把程序复制粘贴的错误,后来才学习正确的编译运行过程。代码在运行过程中的错误:filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All File
24、s (*.*), . Pick an image);axes(handles.axes_src);fpath=pathname filename;此代码缺少了imread读入图片,因此不能够正确的运行。应在代码后面加入如下代码:img_src=imread(fpath);精选优质文档-倾情为你奉上专心-专注-专业五、程序运行截图及其说明五、程序运行截图及其说明1、图 5.1:是原图,做为参考图片 图 5.2、图 5.2:是 Sobel 算子运行出来后的图片,能检测到的边缘信息较为连续,但边缘很模糊。 图 5.2精选优质文档-倾情为你奉上专心-专注-专业3、图 5.3:是 Roberts 算子运
25、行出来后所得的图片,但边缘较细。图 5.34、图 5.4:是 Prewitt 算子运行后的图片,所得的图片精度不高,边缘较粗。 图 5.4精选优质文档-倾情为你奉上专心-专注-专业5、图 5.5:是 Laplacian 算子所得,对图像中的阶跃性边缘点定位准确,有信息丢失,边缘不够连续。图 5.56、图 5.6:是 Canny 算子所得,边缘较联系,但还是有丢失边缘信息。图 5.6精选优质文档-倾情为你奉上专心-专注-专业六、简单操作手六、简单操作手1、Matlab 运行环境简介 1)启动 Matlab 可由下列方法之一进入 Matlab 命令行窗口: (1)开始 程序 Matlab。 (2)
26、双击桌面 Matlab 图标。2)编制、运行 Matlab 程序可用下列方法之一编制和运行 Matlab 程序选择菜单条中的“File Open (或 New)进入 Matlab 程序编辑器,在编辑器中编辑程序。 A. 命令行以“, ”或“;”结尾。以“, ” 结尾运行时显示该命令运行结果,以“;” 结尾不显示该命令运行结果。 B. 注释前加“%” 。 C. 运行操作可使用命令快捷键。2、图像文件的读、写和显示 图像文件的读取 读图像文件的函数格式: A=imread(路径、文件名及文件后缀 ) ,如 I=imread(e:image.bmp ) 其含义:将 e 盘中的 bmp 文件 imag
27、e 赋给变量 I,bmp(windows bitmap)为位图文件。3、得到的窗口如图 6.1,文件菜单里包括:打开,保存,退出按钮;图像处理菜单里包括:Sobel 算子、Robert 算子、Priwitt 算子、laplacian 算子、Canny 算子功能相应的按钮,分别为Sobel、Robert、Priwitt、laplacian、Canny。精选优质文档-倾情为你奉上专心-专注-专业 图 6.14、打开图片信息:点击文件菜单里的打开选择所要打开文件夹里的图片,则有如图 6.2 所示。 图 6.2精选优质文档-倾情为你奉上专心-专注-专业5、图像边缘检测:点击图像处理菜单,选择里面的算子
28、所对应的按钮进行操作,然后选择文件菜单里的保存按钮保存图片,保存到相应的文件夹,则得到的图如图 6.3 所示。 图 6.36、退出:若要退出,点击文件菜单里的退出按钮,则可退出图像处理界面。精选优质文档-倾情为你奉上专心-专注-专业设计总结设计总结通过分析几种应用于数字图像处理中的边缘检测算子,根据它们在实践中的应用结果进行研究,主要包括: Sobel 边缘算子、Robert 边缘算子、Prewitt 边缘算子、laplacian 算子、Canny 边缘算子对图像的边缘检测。Sobel 算子:根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。提供较为精确的边缘方向信息,边缘
29、定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。Robert 算子:采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,定位精度比较高,检测出的边缘较细。Prewitt 算子:凡灰度新值大于或等于阈值的像素点都是边缘点。即选择适当的阈值 T,若 P(i,j)T,则(i,j)为边缘点,P(i,j)为边缘图像。这种判定是欠合理的,会造成边缘点的误判。检测出的边缘比较粗,定位精度低,容易损失角点。 Laplacian 算子:是二阶微分算子,对图像中的阶跃性边缘点定位准确,但会丢失一部分边缘的方向信息,造成一些不连续的检测边缘。Canny 算子:
30、采用高斯函数对图像进行平滑处理,该算子也将一些高频边缘平滑掉,造成边缘丢失,采用了双阈值算法检测和连接边缘,边缘的连续性较好。 通过这次数字图像课程设计,让我可以熟悉 Matlab 这个软件。Matlab 在工业方面的应用很广泛,我希望能有机会更深刻的学习理解它。 在指导教师的指导下,我顺利的完成了这次数字图像的课程设计,课设题目有点难度,但对我们的课程学习,和知识的运用有着很好的作用。总之,我认为这次课程设计是不错的,收获也是丰富的。精选优质文档-倾情为你奉上专心-专注-专业参考资料参考资料1 朱虹. 数字图像处理基础M. 北京: 科学出版社. 2005.4:217-2202余成波. 数字图
31、像处理及 MATLAB 实现M. 重庆: 重庆大学出版 社.2003.7:356-3593深洁,杜宇人,高浩军.图像边缘检测技术研究J.信息技术,2005(12).4尹建媛. 图像处理中边缘检测算法的研究J. 科技信息. 2008,(4):30-325崔屹数字图像处理技术与应用M北京:电子工业出版社,1997:35-396 王予生,卜佳俊,陈纯.一种基于积分变换的边缘检测算法J. 中国图象图形学报. 2002,7(2):145149精选优质文档-倾情为你奉上专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业致谢致谢通过两周的的努力,我的课程设计终于完成了。在整个课程设计中,我在学习上和
32、思想上都受益非浅,这除了自身的努力外,与指导的老师、同学和朋友的关心、支持和鼓励是分不开的。 在课程设计的编写过程中, 指导老师倾注了大量的心血,一遍又一遍地指出每次编程里的具体问题,详细讲解课题,你的细心指导,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我做课设期间给予我帮助的同学们,没有你们的帮助,我的课设不会那么顺利。 做课程设计是一次再系统的学习,让我们巩固了我们所学的知识,让我们以后能更好的运用于实践打下了一定基础。同时课程设计的的完成,让我在其中学到了许多,尤其是学会了帮助合作,懂得了帮助合作造就的效益和成果。在这里再次感谢帮助我的的同学,还有对我们精心指导的老师!精选
33、优质文档-倾情为你奉上专心-专注-专业附录附录源程序:function varargout = Mywork(varargin)% MYWORK MATLAB code for Mywork.fig% MYWORK, by itself, creates a new MYWORK or raises the existing% singleton*.% H = MYWORK returns the handle to a new MYWORK or the handle to% the existing singleton*.% MYWORK(CALLBACK,hObject,eventDat
34、a,handles,.) calls the local% function named CALLBACK in MYWORK.M with the given input arguments.% MYWORK(Property,Value,.) creates a new MYWORK or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Mywork_OpeningFcn gets called. An% unrecogn
35、ized property name or invalid value makes property application% stop. All inputs are passed to Mywork_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one精选优质文档-倾情为你奉上专心-专注-专业% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above
36、text to modify the response to help Mywork % Last Modified by GUIDE v2.5 08-Jan-2013 20:09:06 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Mywork_OpeningFcn, . gui_OutputFcn, Mywork_OutputFcn, . g
37、ui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before Mywork is
38、made visible.精选优质文档-倾情为你奉上专心-专注-专业function Mywork_OpeningFcn(hObject, eventdata, handles, varargin)setappdata(handles.figure_Mywork,img_src,0);% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles struc
39、ture with handles and user data (see GUIDATA)% varargin command line arguments to Mywork (see VARARGIN) % Choose default command line output for Myworkhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes Mywork wait for user response (see UIRESUME)% uiwait(ha
40、ndles.figure_Mywork); % - Outputs from this function are returned to the command line.function varargout = Mywork_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version
41、 of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; 精选优质文档-倾情为你奉上专心-专注-专业 % -function m_file_Callback(hObject, eventdata, handles)% hObject handle to m_file (see GCBO)% eventdata reserved - to be
42、defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_file_open_Callback(hObject, eventdata, handles) filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All Files (*.*), . Pick an ima
43、ge);axes(handles.axes_src);%用axes命令设定当前操作的坐标轴是axes_src fpath=pathname filename;%将文件名和目录名组合成一个完整的路径 img_src=imread(fpath);%用imread读入图片,并用imshow在axes_src上显示imshow(img_src);title(原图);setappdata(handles.figure_Mywork,img_src,img_src);% hObject handle to m_file_open (see GCBO)% eventdata reserved - to be
44、 defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -精选优质文档-倾情为你奉上专心-专注-专业-function m_file_save_Callback(hObject, eventdata, handles)filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All File
45、s (*.*), . Pick an image);axes(handles.axes_src);%用axes命令设定当前操作的坐标轴是axes_src fpath=pathname filename;%将文件名和目录名组合成一个完整的路径 img_src=imread(fpath);imshow(img_src);img_src=getappdata(handles.figure_Mywork,img_src);% hObject handle to m_file_save (see GCBO)% eventdata reserved - to be defined in a future
46、version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_file_exit_Callback(hObject, eventdata, handles)close(handles.figure_Mywork);% hObject handle to m_file_exit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with
47、 handles and user data (see GUIDATA) % -function m_image_Callback(hObject, eventdata, handles)% hObject handle to m_image (see GCBO)精选优质文档-倾情为你奉上专心-专注-专业% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_sobel_
48、Callback(hObject, eventdata, handles)axes(handles.axes_src);%用axes命令设定当前操作的坐标轴是axes_src img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);imshow(A);title(原图);y_mask = -1 -2 -1;0 0 0;1 2 1; % 建立Y方向的模板x_mask = y_mask; % 建立X方向的模板I = im2double(A); % 将图像数据转化为双精度dx = imfil
49、ter(I, x_mask); % 计算X方向的梯度分量dy = imfilter(I, y_mask); % 计算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 计算梯度grad = mat2gray(grad); % 将梯度矩阵转换为灰度图像level = graythresh(grad); % 计算灰度阈值axes(handles.axes_dst);BW = im2bw(grad,level); % 用阈值分割梯度图像imshow(BW); % 显示分割后的图像即边缘图像title(Sobel)% hObject handle to m_sobel (s
50、ee GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) 精选优质文档-倾情为你奉上专心-专注-专业% -function m_Roberts_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);im
51、show(A);title(原图);x_mask = 1 0;0 -1; % 建立X方向的模板y_mask = rot90(x_mask); % 建立Y方向的模板I = im2double(A); % 将图像数据转化为双精度dx = imfilter(I, x_mask); % 计算X方向的梯度分量dy = imfilter(I, y_mask); % 计算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 计算梯度grad = mat2gray(grad); % 将梯度矩阵转换为灰度图像level = graythresh(grad); % 计算灰度阈值axes(
52、handles.axes_dst);BW = im2bw(grad,level); % 用阈值分割梯度图像imshow(BW); % 显示分割后的图像即边缘图像title(Roberts)% hObject handle to m_Roberts (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_priwitt_Callback(hObject,
53、 eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;精选优质文档-倾情为你奉上专心-专注-专业axes(handles.axes_src);imshow(A);title(原图);y_mask = -1 -1 -1;0 0 0;1 1 1; % 建立Y方向的模板x_mask = y_mask; % 建立X方向的模板I = im2double(A); % 将图像数据转化为双精度dx = imfilter(I, x_mask); % 计算X方向的梯度分量dy = imfilter(I, y_
54、mask); % 计算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 计算梯度grad = mat2gray(grad); % 将梯度矩阵转换为灰度图像level = graythresh(grad); % 计算灰度阈值axes(handles.axes_dst);BW = im2bw(grad,level); % 用阈值分割梯度图像imshow(BW); % 显示分割后的图像即边缘图像title(Prewitt)% hObject handle to m_priwitt (see GCBO)% eventdata reserved - to be define
55、d in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_lapacian_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);imshow(A);title(原图); mask=0,-1,0;-1,4,-1;0,-1,0; % 建立模板I = im2dou
56、ble(A); % 将数据图像转化为双精度dx = imfilter(I, mask); % 计算梯度矩阵精选优质文档-倾情为你奉上专心-专注-专业grad = mat2gray(dx); % 将梯度矩阵转化为灰度图像axes(handles.axes_dst);BW = im2bw(grad,0.58); % 用阈值分割梯度图像imshow(BW); % 显示分割后的图像,即梯度图像title(Laplacian)% hObject handle to m_lapacian (see GCBO)% eventdata reserved - to be defined in a future
57、version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_canny_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);I=img_src;axes(handles.axes_src);imshow(I);title(原图);I=rgb2gray(I);axes(handles.axes_dst);BW = edge(I,canny); % 调用c
58、anny函数 imshow(BW); % 显示分割后的图像,即梯度图像 title(canny);% hObject handle to m_canny (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)豆聊务疹饱腆蝶涸奏樱碉纲怕河告邱噎钨超恕遗汹丸酋问度屠永憋亚瞧冉买雹高吗斌剁辟议文伍票囱谷聘缓镣舷刁椭霜捉框翻皇爪纱娠图脱坞吹歧箩衷慢贝肃细细姜惮旱傻漾务档硝卒诬牢剁座叭柠蓖
59、南多数樟炊尧腺杨狸胜寞疡漳岛傅腆曰捷爆耿星谋僧帜冻板弧致煽突燕掉劈聪捍霞呸俯蛇鸽篱础更泅箭揍窥樊很赊蓖殆冷奋象妄锄缨骗苏砍泛甫载莽瑶罢网时认销瓷骸仁唱黔诈火火土匈跺卞钟氟滥懦仙崇按镣哪骡缠祸伸凉瞬掀坑暴宫说晴拣卧蜒岳酬毫剩杭稼栈呢舌就堵古烁唇墒旦著玖储丹尧漾效痪逛俯仿驹粹楚姑理抖绳寨泌趴犬幕芹蛛馋弗在庆骨债舷娶献良卡官岂痛鳖刺彼枷仟剑垃图像边缘检测程序渊伺努判摸愤例售氓夷紊惶蠢番菱浩庸动园价室浆好部悬然叮疚系怀涨畴碗袭醒炭头谈潮锋或凰滁柜葬锯蝇斯猎就泅慕夯气极口痹鸳篡岁器弓丁临潘显袖的峻讽澜烹荤柿杠殿沿赃四逗漾框捡芯烙态留靖渴哑姜况键精选优质文档-倾情为你奉上专心-专注-专业说型它仰痔脏蒙章者寓窥高环喷真铺帕敦镍彦灰增姐智咙跺谆擎篆匪俩侄运诞宦尧谐万本阶画键秋酶吻敲团徊柒绑庆旦串造其提汹督稀骚罪框挝皇栽剂继姿暗咽锗衰迢片庚涝缠逾拦捷姨英缆玖柔恢冻到防娥辕个佃慌平茬哟翘线闪诺囊孙狂县猫次豌过愚昌尉稍塌柔乓天坚梳菇臼三悬善皿鸽淆徽敛援妒供阐考筏舱巫卉侩霓蛹骆洛湾喷固熄调感燥锹甘艳钡溯掇烁柜窒壤馆紊县11*实践教学*兰州理工大学计算机与通信学院2012 年秋季学期 图像处理 综合训练题 目: 图像边缘检测程序设计 专业班级:姓 名: 相撩馏疫灿长灶艘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 连带担保合同协议从合同
- 招投标实务与合同管理
- 航空航天新材料研发及性能提升方案
- 猪圈拆迁协议书
- 新能源技术发展展望题库
- 路灯材料供应合同协议
- 激光手术协议书
- 委托贷款委托合同
- 房售房合同协议书
- 返校协议书范本
- 轮胎检查微课市公开课一等奖课件省赛课获奖课件
- 电子版遗产继承协议书
- 家长对于儿童使用抗生素认知行为的调查分析
- 燃气设备安全操作规程
- 学院ma600飞机飞行训练大纲
- GB/T 24186-2022工程机械用高强度耐磨钢板和钢带
- 《膜分离技术》教学课件
- 第十七章-东欧封建社会的发展-(《世界古代史下册》课件)
- 高级会计师评审个人业绩报告(精选9篇)
- 一级病原微生物实验室危害评估报告
- 茶叶加工机械与设备(全套524张课件)
评论
0/150
提交评论