边缘检测笔记

news2024/10/6 16:25:01

边缘是什么?

        图像的边缘是指图像局部区域中亮度变化明显的部分,边缘位于像素的灰度值产生突变的地方。

        边缘的正负之分:由暗到亮为正,由亮变暗为负。

图像的高频信号和低频信号

        简单理解为,图像中高频分量(高频信号)是指图像的亮度/灰度变化剧烈的地方,也就是边缘;图像中低频分量(低频信号)是指图像亮度/灰度变化平缓的地方,对应图像中大片色块的地方。

边缘检测

        边缘检测主要对图像的灰度变化进行度量、检测和定位。边缘检测算法主要基于图像亮度/灰度的一阶和二阶导数来实现的。

        边缘检测的一般步骤:

        1. 滤波:导数的求解中,图像的噪声会造成较大影响,因此要滤波来平滑噪声,但也要注意滤波往往会淡化边缘,因此要控制好滤波的度。

        2. 增强:增强算法可以将图像灰度点邻阈强度值有显著变化的点凸显出来。

        3. 边缘检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定应用中,这些点并不是要找的边缘点,所以应该采用某些方法对这些点进行取舍。实际工程中,常用的方法是通过阈值化的方法进行检测。

Sobel检测算子

        Sobel检测算子实现简单,效率较高,但边缘检测的准确度不如Canny算子。Sobel算子是高斯平滑和微分操作的的结合体,抗噪声能力较好,在许多关注效率、细节纹理不太关注的场景中使用非常合适。

         Soble算子中间的权重为2不是1的原因是如果都使用1,过于平均,计算结果会像素的细节丢失。我们改改这个系数又可以得到其它的梯度算子,比如Scharr算子如下:

 Laplacian算子

        Laplacian算子使用二阶导数来检测边缘。2D图像有两个维度信息,因此需要在两个方向上求导:

         对于不连续的函数,可以写为:

        X和Y方向都进行此运算,然后相加,因此所使用的卷积核是:

        这里的-4是因为对于X和Y方向上,中心位置的像素值f(x)和f(y)是一样的,因此X和Y方向上的二阶导相加后就是-4f(x)。

Canny算子

        Canny算子检测算法是非常流行的边缘检测算法,目前也被认为是最优边缘检测算法。

        Canny检测算法主要分为四个步骤:

        1. 去噪:利用高斯滤波进行降噪处理。

        2. 计算图像梯度:使用Sobel算子计算水平方向和垂直方向的一阶导Gx和Gy,根据这两个值找到梯度的幅值和方向:

         若像素在边缘上,则其梯度方向总是和边缘垂直。

        3. 非极大值抑制:非极大值抑制是指寻找像素点局部最大值。sobel算子检测出来的边缘太粗了,我们需要抑制那些梯度不够大的像素点,只保留最大的梯度,从而达到瘦边的目的。沿着梯度方向,比较它前面和后面的梯度值,梯度不够大的像素点很可能是某一条边缘的过渡点,排除非边缘像素,最后保留了一些细线。

         以上图为例,我们得到了一副图的梯度和方向的表格,非极大值抑制的意思就是找到同一梯度方向上的梯度最大的值(图中黄色的像素)并保留,其它同方向梯度值较小的值不被保留。

        4. 双阈值边界跟踪: 设置两个阈值Min和Max,这两个值的选取要根据实际图片来调整设置的,并非固定值。

        根据当前边缘像素的梯度幅度与这两个阀值之间的关系,判断边缘的类型:
   ①当前边缘像素的梯度幅度大于或等于高阀值,当前边缘像素标记为强边缘(保留)。
  ②当前边缘像素的梯度幅度介于高阀值与低阀值之间,当前边缘像素标记为虚边缘(保留)。
  ③当前边缘像素的梯度幅度小于或等于低阀值,抑制当前边缘像素(抑制)。

在这里插入图片描述

         对于虚边缘,进一步处理是根据其是否和强边缘相连来决定是否抑制,如果和强边缘相连则保留,否则抑制。如上图所示,B会被抑制,C会被保留。

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

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

相关文章

在Windows11平台安装JDK11(双11)

目录 引言一、安装前说明1.系统要求2.多版本安装 二、JDK11安装三、安装成功验证1.验证2.Path环境变量 总结 引言 本文主要是详细讲解在 Windows 11 系统上安装 JDK 11,安装时有一些注意事项需要说明。与 JDK 8 的安装过程有少许不一样。 一、安装前说明 1.系统要…

GPT-4的中国2023高考作文

我选取2023年上海的作文题(我比较感兴趣),题目如下: 面对这个题目,不知道各位有什么想法么?如果你去考试,你会怎么写? 来,我们看看AI是怎么写的。 以下是GPT-4的作文&a…

vmware虚拟机网络“桥接模式”与“NAT模式”的联网原理及linux环境下IP配置指引

一、vmware虚拟机网络“桥接模式”与“NAT模式”的区别 选中虚拟机》设置》网络适配器,打开虚拟机设置面板 我们看到网络连接处有多个选项,今天良哥通过试验告诉你“桥接模式”和“NAT模式”的联网原理、区别及两种模式下IP地址配置的详细方法。 桥接模…

spring-data-elasticsearch.4.2.0 jar包冲突导致:StackOverflow

最近要求es做升级改造: 目前版本: 1. springframework 4.3.3-RELEASE 2. spring-data-elasticsearch: 2.0.3 3. elasticsearch: 2.4.0 4. 工具类: ElasticsearchTemplate 升级后ES版本7.10.0 1. springframework 升级到 5.3.10 2. spring-data-elasticsearch 升级到 4.…

热门bi报表软件推荐,哪款bi报表软件更功能更强大?

随着商业智能(BI)的不断发展和应用,越来越多的企业开始关注和使用BI报表软件。但是在众多的BI报表软件中,如何选择一款既功能强大又易于使用的软件,成为了许多企业和个人面临的难题。下面将为大家介绍5款热门的BI报表软…

爆肝百万字;学完这些你的python就无敌了

前言 最近高考刚刚结束,不少大学也快陆陆续续的要放暑假了,不少人表示暑假想学点python知识,或提升下自己,或打算学点技术兼职赚点零花钱,于是肝了一份Python最新学习文档总结资料 :全文档1378页&#xff…

Python的离线安装

原文链接 在没有外网的情况下,安装Python环境只能采用离线方式。 Windows离线安装Python Python离线安装包的下载地址:https://www.python.org/ftp/python/ 我选择的是:python-3.8.5-amd64.exe 双击运行安装包即可完成安装。 安装完成后…

简化本地Feign调用

在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突出一个简便,让我们能无需关注内部细节就能实现服务间的接口调用。 但是工作中用久了,发现 Feign 也有些使用起来麻烦的地方,…

【Haproxy 搭建Web 群集】

目录 一、Haoroxy 基础了解1、常见的Web集群调度器2、Haproxy 应用分析 二、Haproxy 调度算法原理三、HAProxy的主要特性四、HAProxy负载均衡策略五、LVS、Nginx、HAproxy的区别1、Nginx的优点,缺点2、LVS的优点和缺点3、HAProxy的优点 六、Haproxy搭建 Web 群集实验…

跟着LearnOpenGL学习8--摄像机

文章目录 一、前言二、摄像机/观察空间2.1、摄像机位置2.2、摄像机方向2.3、右轴2.4、上轴2.5、LookAt2.6、LookAt测试 三、自由移动3.1、移动速度 四、视角移动4.1、欧拉角 五、鼠标输入5.1、缩放 六、摄像机类 一、前言 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵…

【软考系统架构师】进程与线程、并发和并行的理解

进程和线程的概念是软考里经常出现的概念,也是计算机领域的基础概念之一,看到一套非常形象的进程和线程的解释,记录一下 CPU 相当于一个工厂的能源核心,它一直运行,并向外提供动力。 什么是进程 但是这家工厂资金有限&…

A*算法与八数码问题(numpy)

努力是为了不平庸~ 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 目录 一、引言 二、思路 1. 确定问题和目标: 2. 确定算法和数据结构: 3. 编写代码框架 4. 实现辅助函数&#xff1…

CreateML 使用以及机器学习基础概念

1. 前言 在学习 CreateML 之前,我们先了解一下什么是机器学习?目前还不存在被广泛认可的定义来准确定义机器学习是什么。第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力…

C语言-类型转换

数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题. 转换的方法有两种: 自动转换: 遵循一定的规则,由编译系统自动完成. 强制类型转换: 把表达式的运算结果强制转换成所需的数据类型 1 自动转换 自动转换原则 …

阿里人手一本的Java性能调优手册,几乎涵盖了性能优化的所有操作

说起性能调优,想必大家都知道,但是就是没怎么用过,所以在Java性能优化上面临着很多的困扰,比如: 能力修炼中,由于常年接触 CRUD,缺乏高并发这一实践环境,对“性能优化”只能通过理论…

剑指 Offer 59 - I: 滑动窗口的最大值

第一眼看这个感觉思路没啥大问题,就是一个大循环不断后移,然后小循环维护一个k长度的队列。注意peekFirst和peekLast的使用,双端队列可以打破先进先出或者先进后出的局限性,因此peek没有默认值,得加上First或者Last来进…

干货 | 腾讯云李滨:云时代数据安全治理方法与实践

作者:李滨‍‍‍‍本文约2600字,建议阅读8分钟 本文与你分享腾旭在数据安全和人工智能的安全治理方法,以及实践上的一些经验。 今天很荣幸与大家分享在过去几年以内,腾讯在数据安全和人工智能的安全治理方法,以及实践上…

使用服务器的妙妙工具

为什么使用服务器? 一台电脑的性能终究是有限的,所以当计算量太大时,我们可以借助服务器,它的运算速度快,存储空间大。 和个人电脑不同,服务器通常由一个管理员进行管理,而有多用户同时使用。…

一行代码实现网页直接跳转抖音,2023年6月新方法

之前 发的文章 方法已经失效,以下为新版本方案! 背景 大家可能都发现在一些APP中无法直接打开抖音的链接,就连抖音官方的分享链接在浏览器打开都无法直接唤醒APP。需要我们手动点击,如果我们在自己网站等推广希望直接拉起抖音可…

工厂方法模式(五)

过气的,终究是过气了 上一章简单介绍了工厂模式(四), 如果没有看过,请观看上一章 一.工厂方法模式 工厂方法模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。 将类的实例化(具体产品的创建&…