图像处理算法——边缘检测 图像的边缘检测算法
haoteby 2024-12-23 10:27 2 浏览
图像处理领域中涉及很多特征,角点特征,边缘特征,形状特征,纹理特征,颜色特征,直方图统计特征等等(还有很多^_^)。这些特征有些是比较底层的特征,如角点特征,边缘特征,颜色特征等,有些则是较为高层的特征,如形状特征,纹理特征,直方图统计特征。
这里我们主要谈论底层特征中的边缘特征,提取这些特征的手段叫作边缘特征提取或叫作边缘检测。边缘检测常用的算子中分为一阶检测算子和二阶检测算子,这里提及的算子有些类似数学中的微分的概念(要有一定的数学基础哦)。边缘检测的另外一种形式也被成为相位一致性,这个概念我到后面再谈及,有了这个概念之后帮助我们从图像频域分析边缘提取这一过程。
表1 图像处理边缘检测算子分类表格
基于边缘检测的分析不易受整体光照强度变化的影响,同时利用边缘信息容易凸显目标信息和达到简化处理的目的,因此很多图像理解方法都以边缘为基础。边缘检测强调的是图像对比度。对比度从直观上的理解就是差异的大小,若对于灰度图像来说就是灰度值(亮度值)的差别,若对于彩色图像则是颜色的差异了。这些差异可以增强图像中的边界特征,因为这些边界就是图像对比度较大的体现。
这就是我们感知目标边界的大体机制,因为目标的表现就是与它周围的亮度差别。
一、水平差分算子、垂直差分算子
亮度变化可以通过对相邻点进行差分处理来增强。对水平方向的相邻点进行差分处理可以检测垂直方向上的亮度变化,根据其作用通常被称为水平边缘检测算子(horizontal edge detector),这样就可以检测出垂直边缘Ex;对垂直方向的相邻点进行差分处理可以检测水平方向上的亮度变化,根据其作用通常被称为垂直边缘检测算子(vertical edge detector),这样就可以检测出水平边缘Ey。
Ex = |Px,y - Px+1,y|
Ey = |Px,y - Px,y+1|
将水平边缘检测算子和垂直边缘检测算子结合,就可以同时检测出垂直边缘和水平边缘,即:
Ex,y =|Px,y - Px+1,y + Px,y - Px,y+1|
由此可以得到
Ex,y =|2 x Px,y - Px+1,y - Px,y+1|
利用泰勒级数分析可以知道相邻两点的差值是一阶导数的估算值,误差
。
如果在相邻两个差分点之间插入一个像素来实现,相当于,相当于用两个相邻点的一阶差分作为新的水平差值Exx,其中
Exxx,y = Ex x+1,y + Ex x,y = |Px+1,y - Px,y + Px,y - Px-1,y| = |Px+1,y - Px-1,y |
利用泰勒级数分析可以知道一阶微分的估算值是由一个像素隔开的两个点的差值,误差
。
二、一阶边缘检测
(a) Roberts交叉算子
Roberts交叉算子实现的基础是一阶边缘检测,利用两个模板,计算对角线上而不是坐标轴上的两个像素的微分。这里命名这两个模板分别为M+,M-
(b) Prewitt边缘检测算子
边缘检测类似微分处理,它检测的变化的部分,必然对噪声和图像的亮度变化都有相应处理。因此,把均值处理加入到边缘检测过程中一定要非常谨慎。我们可以把垂直模板Mx扩展成三行,而水平模板My扩展成三列。这样就得到Prewitt边缘检测算子。
(c) Sobel边缘检测算子
如果把使两个Prewitt模板算子中心像素的权值去两倍的数值,便得到有名的Sobel边缘检测算子,它是由矢量方式确定边缘的两个掩码组成的。Sobel很受欢迎是因为它比Prewitt算子等同时期的其他边缘检测算子性能更好。
Sobel算子的通用形式综合了一条坐标轴上的最优平滑和另一条坐标轴上的最优差分。值得注意的是,大的边缘检测模板的好处是它减少噪声的平滑效果更好,然而边缘模糊却成为一个大难题。
(d) Canny边缘检测算子
Canny边缘检测算子可以说是当前最受欢迎的边缘检测方法。它由三个主要目标形成:
- 无附加响应的最优检测
- 检测边缘位置和实际边缘位置之间距离最小的正确定位
- 减少单边缘的多重响应而得到单响应
Canny指出高斯算子对图像平滑处理是最优的。Canny边缘检测一般处理的步骤可以粗略的分为以下四个步骤:
- 应用高斯平滑处理
- 应用Sobel算子
- 应用非极大值抑制(非极大值抑制实质上是找到边缘强度数据中的最高点)
- 滞后阈值处理来连接边缘点(阈值处理需要两个阈值,即上限阈值和下限阈值 )
三、二阶边缘检测
一阶边缘检测的前提是微分处理可以使变化增强。找图像变化率最大的地方不仅可以通过一阶变化率的极值寻找,同时也可以通过二阶变化的过零点来寻找。
(a) Laplacian算子
二阶微分可以利用两个相邻一阶微分的差值来近似。这也和数学中的概念相一致。
如果把水平二阶算子和处置二阶微分算子结合起来,可以得到一个全Laplacian模板算子。
(b) Marr-Hidreth算子
Marr-Hidreth也是利用高斯滤波。该算子的曲面图是墨西哥帽子的形状,所以有时也被成为“墨西哥帽子”算子,如下图所示。
实际上,如果把高斯平滑和Laplacian算子结合起来,可以得到一个LoG(Laplacian of Gaussian)算子,它就是Marr-Hidreth的基。
各算子的效果比较:
四、其他边缘检测
边缘检测作为视觉处理的初级阶段,方法有很多种,这里我们再提及两个设计最优的边缘检测方法,Spacelk方法和Petrou方法。有兴趣的朋友可以进一步了解。这里需要提及的是Spacek算子使定位信噪比和峰值分离比的乘积最大化。Spacek算子比Canny算子具有很高的性能。Petrou算子使用的模板比较大,以便保存最优性,因此Petrou算子可以处理比较大的计算复杂度,但在使用的时候,应当具体问题具体分析。
五、相位一致性
边缘检测算子的比较突出了它们的一些内在问题:不完整轮廓问题、阈值选择问题和噪声响应问题。因为光照强度在图像的不同区域是不一样的,选择单个阈值通常不能适用于图像中的所有区域。这些问题单靠简单初级的处理难以解决。需要优化方法或者使用较为高级的手段才能达到一定的效果。
相位一致性(Phase congruency)方法是一个特征检测算子,它由如下两个优点:
- 可以检测大范围的特征
- 对局部(和平滑)光照变化具有不变性
这两个优点其实就是一致性检测具有局部对比度不变性:即使阶梯边缘强度变小,其变化位置并不改变。
相关推荐
- 单点登录(SSO)解决方案介绍(单点登录概念)
-
一、单点登录的介绍单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系...
- 系统登录的三种方式,哪一种更安全?
-
登录是一个高频的动作,笔者抓住这一个小点,分析了系统登录的几种方式和对应的场景。今天谈谈登录。登录即用户输入用户名和密码登录进系统中。B端系统,对于登录的业务场景有两种(可能不止,目前遇到过这两种):...
- 到底什么是单点登录(SSO)?(什么叫做单点登录)
-
什么是单点登录?单点登录(SingleSign-On,简称SSO)是一种集中式的身份验证和授权机制,用户只需在一处输入一次凭证(例如用户名和密码)就可以访问多个相关但独立的软件系统。在数字化时代,...
- 5年稳如老狗的单点登录系统,到底是怎么搞出来的?
-
说到单点登录(SingleSign-On,简称SSO),大家的第一反应可能是——啊不就是登录一次,能到处串门儿嘛?别说,还真差不多,就是这么个意思。但真要搭一套好用、耐造、还能扛住公司里各种奇奇怪...
- 这些负载均衡都解决哪些问题?服务、网关、NGINX?
-
在微服务项目中,有服务的负载均衡、网关的负载均衡、Nginx的负载均衡,这几个负载均衡分别用来解决什么问题呢?一、服务的负载均衡先抛出一个问题:...
- Nginx负载均衡最全详解(4大算法原理机制)
-
Nginx在大型网站架构很重要,也是大厂重点考察方向,今天我就重点来详解Nginx负载均衡@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。Nginx负载均衡N...
- 负载均衡 Nginx Session 一致性(nginx 负载均衡 会话保持)
-
HTTPS请求跳转...
- 监控Oracle Cloud负载均衡器:Applications Manager释放最佳性能
-
设想你正在运营一个受欢迎的在线学习平台,在考试前的高峰期,平台流量激增。全球的学生同时登录,观看视频、提交作业和参加测试。如果OracleCloud负载均衡器不能高效地分配流量,或者后端服务器难...
- Nginx负载均衡:nginx.conf配置文件说明!
-
大家好,欢迎来到程序视点!我是你们的老朋友.小二!在此记录下Nginx服务器nginx.conf负载均衡的配置文件说明,部分注释收集与网络.关于nginx.conf基本的配置,请查看上一篇文章!Ng...
- Java高可用系统架构中的负载均衡策略
-
Java高可用系统架构中的负载均衡策略在现代的分布式系统中,负载均衡策略是构建高可用系统的基石。Java开发者需要深刻理解这些策略,以便打造稳定且高效的系统。接下来,让我们一起揭开负载均衡的神秘面纱。...
- Spring Boot3 客户端负载均衡全解析:从原理到实战
-
在当今互联网大厂后端技术开发的激烈竞争环境中,构建高效、稳定的微服务架构是核心诉求。其中,SpringBoot3作为热门开发框架,其客户端负载均衡功能对于提升系统性能、保障服务稳定性起着关键作用。...
- MySql高可用集群MySQL Router负载均衡读写分离
-
名词解释MGR:MysqlGroupReplication组复制,多台MySQL服务器在同一组中会自动保持同步状态,当某台服务器故障时,整个复制组依然可以保持正常并对外提供服务。...
- 性能测试之tomcat+nginx负载均衡(nginx tomcat)
-
nginxtomcat配置准备工作:两个tomcat执行命令cp-rapache-tomcat-8.5.56apache-tomcat-8.5.56_2修改被复制的tomcat2下con...
- win10/11双网卡链路聚合叠加负载均衡提升网速解决网卡网速瓶颈!
-
双网卡链路聚合一种网络配置技术,通过将多个物理网卡绑定在一起,形成一个逻辑上的网络接口,以提高网络的可靠性、可用性和性能。这种技术通常用于服务器和网络设备中,以实现负载均衡、冗余和高可用性。本机环境:...