matlab图像边缘检测分析

更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013     

所谓边缘是指其周围像素灰度有变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。物体的边缘是由灰度不连续所反映的。基于边缘的分割代表了一大类基于图像边缘信息的方法,常用于图像分割。

更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013


1.边缘检测的基本原理及常用边缘检测算子

边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。经典的边缘检测方法是对原始图像中像素的某小邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点做出了比较和评价。


人们以这些理论为依据,提出了许多算法,其中比较常用的边缘检测方法有差分边缘检测、Roberts 边缘检测算子、Sobel 边缘检测算子、Prewitt 边缘检测算子、Robinson 边缘检测算子、Laplace 边缘检测算子、Canny 算子和 LOG 算子等等。

(1)差分边缘检测方法

         利用像素灰度的一阶导数算子在灰度迅速变化处得到高值来进行奇异点的检测。它在某一点的值就代表该点的“边缘强度”,可以通过对这些值设置阈值来进一步得到边缘图像。然而,用差分检测边缘必须使差分的方向与边缘方向垂直,这就需要对图像的不同方向都进行差分运算,增加了实际运算的繁琐性。

 一般为垂直边缘、水平边缘、对角线边缘检测,如下所示:

 


差分边缘检测方法是最原始、最基本的方法。根据灰度迅速变化处一阶导数达到最大(阶跃边缘情况)原理,要求差分方向与边缘方向垂直,利用导数算子检测边缘。这种算子具有方向性,运算繁琐,目前很少采用。


(2)Roberts 边缘检测算子

     Roberts 边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,即:

   

        适当选取门限 TH,并作如下判断:如果 R(i, j)>TH,则(i, j)为阶跃状边缘点,{R(i, j)}为边缘图像。
       Roberts 算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘的效果好于斜向边缘,定位精度高,但对噪声敏感。

(3)Sobel 边缘检测算子

     数字图像{f (i, j)}的每个像素,考察它上下左右邻点灰度的加权差,与之接近的邻点的权大。据此,定义 Sobel 算子如下:

 

           适当选取门限 TH,并作如下判断:如果 R(i, j)>TH,则(i, j)为阶跃状边缘点,{R(i, j)}为边缘图像。
          Sobel 算子很容易在空间上实现,Sobel 边缘检测器不但产生较好的边缘检测效果,而且受噪声的影响也比较小。当使用大的邻域时,抗噪性能会更好,但这样会增加计算量,并且得出的边缘也会相应变粗。
           Sobel 算子利用像素点上下、左右邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘的检测。Sobel 算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但它同时也会检测出许多伪边缘,边缘定位精度不够高。当对精度要求不是很高时,它是一种较为常用的边缘检测方法。


(4)Prewitt 边缘检测算子

         Prewitt 边缘检测算子是一种边缘样板算子。这些算子样板由理想的边缘子图像构成。依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值。用这个最大值作为算子的输出值 P(i, j),这样可将边缘像素检测出来。

     定义 Prewitt 边缘检测算子模板如下:

   

8个算子样板所对应的边缘方向如图 所示。适当选取门限 TH,并作如下判断:如果 P(i,j)>TH,则(i,j)为阶跃状边缘点,{P(i,j)}为边缘图像。



(5)Robinson 边缘检测算子

     Robinson 边缘检测算子也是一种边缘样板算子,其算法和 Prewitt 边缘检测算子相似,只是 8 个样板不同,如图所示。


(6)Laplace 边缘检测算子

     Laplace 边缘检测算子是一种二阶微分算子,对于数字图像{ f (i,j)},它在图像中的位置(i,j)的 Laplace 定义如下:

             Laplace 边缘检测算子是无方向性的算子,它比前面所述的多个方向导数算子的计算量要小,因为只用一个模板,且不必综合各模板的值。计算数字图像的 Laplace 值也是借助各种模板卷积实现的。实现 Laplace 运算的几种模板可见下图。在数字图像中,可用差分来近似微分运算,若选用图 7-4 中的第一个检测模板,则 f (i,j)的 Laplace 算子为:

几种常用的实现 Laplace 运算的检测模板如图所示。


         由于 Laplace 算子是一种二阶导数算子,对图像中的噪声相当敏感。另外它常产生双像素宽的边缘,且也不能提供边缘方向的信息。由于以上原因,Laplace 算子很少直接用于检测边缘,而主要用于已知边缘像素后确定该像素是在图像的暗区或明区一边。



2.各种边缘检测算子的 MATLAB 实现及效果比较

在 MATLAB 中可以由 edge 函数实现各算子对边缘的检测,以 Roberts 算子为例,其语法格式如下:

     BW=edge(I,’roberts’)
     BW=edge(I,‘roberts’,thresh)
     [BW,thresh]=edge(I,‘roberts’,⋯)
     BW=edge(I,‘roberts’)自动选择阈值用 Robert 算子进行边缘检测。
     BW=edge(I,‘roberts’,thresh)根据所指定的敏感阈值 thresh 用 Robert 算子进行边缘检测,它忽略了所有小于阈值的边缘。当 thresh 为空时,自动选择阈值

     [BW,thresh]=edge(I,‘roberts’,⋯)返回阈值。

     edge 函数对灰度图像 I 进行边缘检测,返回与 I 同样大的二值图像 BW,其中 1 表示边缘,0 表示非边缘。I 是 unit8 型、unit16 型,或者是 double 型,BW 是 unit8 型。

     其余 Sobel 算子、Prewitt 算子、LOG 算子、Canny 算子的实现仅需将‘roberts’用‘sobel’、‘prewitt’、‘log’、‘canny’代替即可。

例:具体实现这几个算子的一个例程

I=imread('cameraman.tif');
BW1 = edge(I,'sobel'); %应用 Sobel 算子进行滤波
BW2 = edge(I,'roberts'); %应用 Roberts 算子进行滤波
BW3 = edge(I,'prewitt'); %应用 Prewitt 算子进行滤波
BW4 = edge(I,'log'); %应用 LOG 算子进行滤波
BW5 = edge(I,'canny'); %应用 Canny 算子进行滤波
subplot(2,3,1),imshow(I),title('原图');
>> subplot(2,3,2),imshow(BW1),title('Sobel算子边缘检测');
>> subplot(2,3,3),imshow(BW2),title('Roberts算子');
>> subplot(2,3,4),imshow(BW3),title('Priwitt算子');
>> subplot(2,3,5),imshow(BW4),title('LOG算子');
>> subplot(2,3,6),imshow(BW5),title('Canny算子');


更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在本文中,我们将介绍从数据集中选择要素的不同方法; 并使用Scikit-learn(skl…

Nature子刊批判人工神经网络:先天结构比后天训练更重要,应该借鉴动物大脑...

来源:凹非寺人工神经网络可以从动物大脑中学到什么?最新一期Nature子刊上,就刊登了这样一篇文章。美国冷泉港实验室的神经科学家Anthony M. Zador,对当下人工神经网络的研究思路进行了深刻反思与批判:大多数动物行为不…

matlab的傅里叶变换

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 图像变换: 更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 在 MATLAB 中,一般用二元函数…

笔记一 Redis基础

在cmd 命令中运行redis 运行redis命令 :redis-cli Reids数据结构初探 数据结构有五种 string(字符串)、 list(列表)、set(集合)、hash(散列)、zset(有序集合) redis各类型的简单介绍 和最基础的命令 1.string&a…

matlab的四维图像数据可视化

1.颜色来表示第四维 前面已经学了三维图形可视化,所谓三维就是指x轴,y轴,z轴组成了我们的三维,那么第四维用什么来表示呢,我们这里要用颜色来表示第四维,所谓四维图形可视化就是在三维图形可视化的基础上&…

Mybatis 入门之resultMap与resultType讲解实例

resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 id:resultMap的唯一标识 column:库表的字段…

全球半导体产业60年兴衰启示录!

本文来自华泰证券,研究员张馨元、钱海、陈莉敏,感谢分享!科技是当前行业配置不能忽视的主线,我们在今年 5 月 10 日发布的中期策略报告《无科技不牛市,以时间换空间》中提出,5G 时代物联网技术革命带来的是…

手机上python编程工具3和3h有区别吗_Python3.5内置模块之time与datetime模块用法实例分析...

本文实例讲述了Python3.5内置模块之time与datetime模块用法。分享给大家供大家参考,具体如下: 1、模块的分类 a、标准库(Python自带):sys、os模块 b、开源模块(第三方模块) c、自定义模块 2、内…

华为加码布局 VR/AR趁势启航

来源:VR每日必看乘5G东风,VR/AR空间打开。随着5G的到来,5G高速和超低时延的特性将完美应对VR/AR发展的短板,商用牌照的发放将带领5G逐渐进入放量阶段,内外巨头均已开始大力布局。分析人士认为:第一阶段场景…

linux系列之常用运维命令整理笔录

本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文…

Android高德地图自定义Markers的例子

下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法。 之前的博客里说了地图的嵌入和定位,今天就说说在地图上显示一些我们想要的。在地图中有自带的Markers(标记&a…

javaweb教务管理系统_基于Java web的教务管理系统

源码编号:B-E00033 点击查看(分类规则)项目类型:Java EE项目(非开源)项目名称:基于Java web的教务管理系统(TeachingSystem)当前版本:V1.0.1版本难度等级:✩✩复杂程度:✩✩ 点击查看难度等级用户类型&…

Science揭秘:为什么“好记性不如烂笔头”?

来源:中国生物技术网你还能记起你小学班长的名字吗?但我相信你肯定能记得同桌的名字,和与其共同经历的种种。但要再问你昨天新来同事的名字,你是否可以不假思索的回答出来?是不是有点儿困难?那为什么你能脱…

中国机器人产业发展报告(2019)正式发布!

来源:世界机器人大会2019年8月25日,《中国机器人产业发展报告(2019)》于2019世界机器人大会闭幕式上正式发布,该报告为工业和信息化部2019-2021年财政专项《我国机器人产业发展水平评估体系构建与智能机器人产业链增长…

matlab/ansys协同的一个例子

前段时间找了点Matlab与ANSYS协同工作的资料,在我看来所谓协同是ANSYS将结果写到文件然后Matlab读,或者Matlab写数据到文件ANSYS读,协同是通过读写文件实现的。我找了个瞬态分析的例子,写了APDL,将网上找到的ANSYS结果…

security center拒绝访问_Steam被曝出0day提权漏洞,但厂商拒绝修复

近期,全球流行的Steam游戏客户端被曝出0day提权漏洞,影响全球一亿多Steam用户。该漏洞可让机器上的低权限用户以SYSTEM权限运行程序。这意味着恶意软件很可能利用这个漏洞对受害者的机器进行深度破坏。考虑到Steam是一款总用户1.2亿,日常在线…

人工智能第一股“旷视科技”赴港递交IPO材料 半年亏损52亿估值280亿

来源: 人工智能和大数据8月25日,人工智能领域“独角兽”旷视科技正式向港交所递交IPO材料。招股书显示,旷视拟采用“同股不同权”方式上市,“同股不同权”股东为创始人兼CEO印奇以及两位联合创始人唐文斌、杨沐,三人占…

python可以代替plc吗_PLC可以代替安全控制器吗?电气工程师告诉你

导读 国内的企业越来越重视设备的安全防护,可事故却频频发生,这是为什么呢?主要还是源自于大家对于安全防护知识上存在的诸多误区,比如很多人认为,稳定性高、性能强的PLC即可替代安全控制器的作用,其实这就…

Nature展示迄今为止最详细的“人脑零部件清单”

来源:中国生物技术网近日,美国艾伦脑科学研究所的一项新研究为我们展示了迄今为止最详细的“人脑零部件清单”,阐明了人类大脑皮层的细胞结构,它对于理解我们的认知能力和对疾病的易感性至关重要。该研究近日已发表在《Nature》上…

beautifulsoup网页爬虫解析_爬虫第三天——初识Xpath

解析神器Xpath:1. 什么是XpathXPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一…