五种边缘检测算法(附代码)

2023-10-27

一、Roberts 边缘检测算子

Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,即:
在这里插入图片描述
然后根据式(1.9.2)计算出Roberts的梯度幅度值:
在这里插入图片描述
它们的卷积算子为:
在这里插入图片描述
Roberts检测器较为简单,但具有一些功能上的限制,例如,它是非对称的,而且不能检测诸如45°倍数的边缘。然而,它还是经常用于硬件实现中,因为它既简单又快速。

二、Sobel 边缘检测算子

对数字图像的每个像素,考察它上下左右邻点灰度的加权差,与之接近的邻点的权大。据此,定义Sobel算子如下:
在这里插入图片描述
卷积算子为:
在这里插入图片描述
Sobel 算子很容易在空间上实现,边缘检测效果较好,且受噪声的影响也较小。邻域增大抗噪性会更好,但计算量也会增大,得出的边缘也会相应变粗。Sobel算子会检测出许多伪边缘,边缘定位精度不够高,在精度要求不高时是一种较常用的边缘检测方法。

三、Prewitt 边缘检测算子

Prewitt 边缘检测算子模板如下:
在这里插入图片描述
图像中的每个像素都用这两个核作卷积,一个核对垂直边缘影响最大,另一个核对水平边缘影响最大。两个卷积的绝对值的最大值作为该点的输出值。不能简单的将小于0的值处理为0,这样会丢失信息。它比Sobel检测器在计算上要简单一些,但比较容易产生一些噪声。

四、 LoG 检测器

高斯函数
在这里插入图片描述
其中,r2=x2+y2,σ是标准偏差。这是一个平滑函数,若和一幅图像卷积,则会使图像变模糊。模糊程度由σ的值决定。该函数的拉普拉斯算子为:
在这里插入图片描述
求二阶导数是线性运算,所以 ▽2h®用对图像进行卷积与先用平滑函数对图像卷积再计算结果的拉普拉斯算子是一样的。这是LoG检测器最关键的概念,用 ▽2h®对图像卷积会产生两个效果:是图像变平滑(从而减少噪声);计算拉普拉斯算子,以便产生双边缘图像。然后,定位边缘就是找到两个边缘之间的零交叉。

五、Canny边缘检测器

Canny检测器的效果较好,更适合用于检测真正的弱边缘。Canny算子给出了一个好的边缘检测算子的3个指标:低失误率,即真正的边缘点尽可能提取,非边缘点尽可能不提取;高位置精度,检测的边缘应尽可能接近真实边缘;对每一个边缘点有唯一的响应,即得到单像素宽度的边缘。

六、代码

clear all;
I = imread(‘d:\office.bmp’);
I=rgb2gray(I);
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)
subplot(2,3,2),imshow(BW1)
subplot(2,3,3),imshow(BW2)
subplot(2,3,4),imshow(BW3)
subplot(2,3,5),imshow(BW4)
subplot(2,3,6),imshow(BW5)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

五种边缘检测算法(附代码) 的相关文章

  • c#图像几何特征匹配

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Ope
  • Python必备基本技能——命令行参数args详解

    Python必备基本技能 命令行参数args详解 1 效果图 2 源码 2 1 简单命令行参数 2 1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员 工程师和计算机科学家必备的技能 命令行参数 原理及使用 依赖 pip install
  • windows8.1 vs2015 dlib库cpu 版本编译以及应用 library is 90, caller expects 80

    近期由于要做一个关于人脸计数的项目 因此对dlib库进行了编译和使用 其中遇到了不少问题 下面请听我一一道来 第一步 从dlib官网下载dlib源码 链接地址 https github com davisking dlib 第二步 采用cm
  • mingw qt5.14.2 编译 vtk9.1.0

    1 软件 qt版本 qt opensource windows x86 5 14 2 exe 安装mingw选项 cmake版本 cmake 3 21 2 windows x86 64 msi VTK源码版本 VTK 9 1 0 tar g
  • Python opencv学习-6Canny边缘检测学习

    代码 图片参考https blog csdn net tengfei461807914 article details 76376941 修正了其文中出现的错误 canny作用及用法简单理解 阈值针对的是图像灰度梯度而言 需要确定哪些边界是
  • Python图像处理实战:处理和分析图像数据

    引言 在现代数字化时代 人们生产和获取数以亿计的数字图像 具体而言 这些图像数据常用于计算机视觉 模式识别 医学影像 地球观测和卫星遥感等领域 通过高级图像处理技术 可以从这些数据中提取出有用的信息 从而支持实现各种应用 本文主要介绍Pyt
  • 【论文精读】A view-free image stitching network based on global homography-基于全局单应的无视图图像拼接网络

    论文链接地址 代码链接地址 关于本文的代码 我已经调试过了 在调试过程中遇到的错误 我也做了一些总结 有需要的可以参考这篇博文 A view free image stitching network based on global homo
  • 保姆级使用PyTorch训练与评估自己的ConvNeXt网络教程

    文章目录 前言 0 环境搭建 快速开始 1 数据集制作 1 1 标签文件制作 1 2 数据集划分 1 3 数据集信息文件制作 2 修改参数文件 3 训练 4 评估 5 其他教程 前言 项目地址 https github com Fafa D
  • 图像恢复(加噪与去噪)

    人工智能导论实验导航 实验一 斑马问题 https blog csdn net weixin 46291251 article details 122246347 实验二 图像恢复 https blog csdn net weixin 46
  • 【从小项目学图片处理】#1 答题卡识别

    说明 项目皆参考于网上 代码也有大部分参考原文 仅用于学习和练习图像处理操作 项目原文 Bubble sheet multiple choice scanner and test grader using OMR Python and Op
  • OpenCV入门【C++版】

    OpenCV基础入门 C 语言 Chapter1 读取图片 视频 摄像头 从文件读取图片 从文件读取视频 读摄像头 Chapter2 基础函数 Chapter3 调整和剪裁 Chapter4 绘制形状和文字 Chapter5 透视变换 Ch
  • SIFT和SURF的替换算法——ORB (Oriented FAST and Rotated BRIEF 快速定向和旋转)

    SIFT和SURF的替代算法 ORB Oriented FAST and Rotated BRIEF 快速定向和旋转 1 效果图 2 源码 参考 1 用于关键点检测和描述的SIFT Scale Invariant Feature Trans
  • 【matlab图像处理笔记2】【图像变换】(一)图像的算术运算与几何变换、图像插值算法

    文章目录 前言 图像的算术运算 图像相加 图像差分 图像乘法 图像除法 图像的线性组合 图像的几何变换 图像平移 图片镜像 图片转置 图像旋转 图像缩放 图像插值算法 最近邻插值算法 双线性插值算法 单线性插值 双线性插值 双三次插值算法
  • 基于Matlab实现图像融合技术(附上多个仿真源码+数据)

    图像融合技术是一种将多幅图像融合为一幅图像的方法 使得这幅融合图像包含原始图像的所有信息 近年来 图像融合技术已经广泛应用于图像分割 变换和裁剪等领域 本文将介绍如何使用Matlab实现图像融合技术 实现步骤 首先 我们需要了解图像融合的基
  • 九宫格人车识别

    一 原理 通过霍夫检测圆的个数来识别小人位置 二 过程 1 二值图像 2 去掉宫格内容 便于分割 3 对二值图填补 减少纹理 4 分割九宫格 依次检测每个宫格中圆个数 5 最终显示小人所在宫格图片 在img6 jpg中 详细程序运行结果 三
  • 无监督低照度图像增强网络ZeroDCE和SCI介绍

    目录 简介 Zero DCE 算法介绍 模型代码 无监督loss介绍 小结 Self Calibrated Illumination SCI 模型介绍 无监督loss介绍 小结 总结 简介 当前有较多深度学习的方法来做图像效果增强 但多数都
  • cv2.minAreaRect()

    功能 求出在点集下的最小面积矩形 输入 格式 points array shape n 1 2 解释 其中points是点集 数据类型为ndarray array x1 y1 x2 y2 xn yn 输出 格式 rect tuple x y
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • 图像分割-Grabcut法

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的C 版本请访问 图像分割 Grabcut法 C CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景

随机推荐

  • POISX线程信号量的实现原理

    sem结构体 struct semaphore raw spinlock t lock unsigned int count struct list head wait list struct semaphore waiter struct
  • 导出pdf,自动分页

    要将导出的 PDF 固定为 A4 纸大小并在超出 A4 长度时进行分页 你需要进行一些修改 以下是修改后的代码
  • perl:verilog dummy module

    https code csdn net snippets 1903886 git 样板工程 usr bin perl description not support parameter WIDTH 1 not support bigendi
  • pytorch/torch安装简明教程

    LINUX上安装 0 进入官网https pytorch org 按照你的系统以及配置 获取安装命令 1 安装gpu版本的torch cuda包 用于torch调用gpu加速库 pip install torch 1 5 0 cu101 t
  • redis运维之数据迁移

    1 导出redis的aof和rdb文件 在Redis中 可以使用BGSAVE命令导出AOF日志 而使用SAVE命令导出RDB文件 2 AOF和RDB日志的导出位置 打开redis conf文件 找到如下配置 dir path to your
  • promise中的回调函数、async和await的执行顺序

    一 几个关键问题 1 宏队列 用来保存待执行的宏任务 回调 比如 定时器回调 DOM事件回调 ajax回调 2 微队列 用来保存待执行的微任务 回调 比如 promise的回调 MutationObserver的回调 3 JS执行时 必须先
  • USB物理层

    USB总线接口具有向外提供电源的能力 并且是5V的电压 非常的适合TTL信号系统 使用这个电源可以再一定程度上为设备供电 减少了USB电源设计 简化了USB系统结构 USB 电缆有四根导线 电源线 红色Vbus 地线 黑色GND D 绿色
  • tkFileDialog.py

    def askopenfilename options Ask for a filename to open return Open options show def asksaveasfilename options Ask for a
  • Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully.....

    最近将之前的项目部署到了服务器之后 发现在长时间不访问网站后 再次打开页面会出现白屏现象 除非重新刷新页面 否则无法正常加载数据 使用F12查看请求返回的JSON数据发现提示内部错误 由此可知问题在服务端 服务器相关信息 OS CentOS
  • Spring cloud Alibaba 之 分布式链路追踪 sleuth

    什么是链路追踪 微服务之间相互调用 每一个请求过来可能调用多个服务 比如 一个请求调用A 服务 A 又依赖B 服务 B又依赖C 服务 这样形成一个调用链 当我们查询日志的时候都需要知道一个请求的完整路径 这个时候链路追踪就产生作用 A 调用
  • 学python心得体会800字-浅谈我对python的学习感受

    python是一门非常有潜力的高级语言 历经多年的发展 其在编程上发挥着越来越大的作用 在这学期中 通过选修python课上的基础知识学习 我对python也有了一定的认识 而且 在字符串上的处理 python相对于c语言也是给程序员极大的
  • k8s 部署 jenkins

    一 前提条件 1 安装helm 二 安装harbor 1 添加harbor helm仓库 helm repo add jenkins https charts jenkins io 2 更新仓库 helm repo update
  • 什么是UE像素流送,像素流推流是什么原理?

    游戏开发者通常在运行游戏逻辑时会将游戏渲染到屏幕的同一台设备上来运行虚幻引擎应用 多人联网游戏可能会在应用程序的多个实例之间分发部分游戏逻辑 但每个单独的实例仍然会为自己的玩家在本地渲染游戏 即使是使用 HTML5 部署选项创建可以在 We
  • 【C/C++】读取字符串的多种方式(带空格)

    获取字符 字符串对象 字符串行的多种方式 Created By Liu Xianmeng On 2022 12 10 include
  • Linux逻辑卷管理(LVM)

    一 逻辑卷 LV 卷组 VG 物理卷 PV 关系 逻辑卷 LV 是卷组 VG 的一部分 可以在卷组大小内动态增加 每个卷组可分为多个逻辑卷 卷组由多个物理卷 PV 组成 每个物理卷是一个块设备 磁盘分区等 二 LVM存储 1 准备物理设备
  • VSCode自动格式化Vue代码

    VSCode自动格式化Vue代码 Prettier Code formatter 配置代码格式化文件 配置setting json VsCode关于Vue的格式化插件非常多 网上的资料也五花八门 可以使用的非常少 经过多次探索 终于找到一个
  • 剑指offer第45题:扑克牌顺子

    剑指offer第45题 扑克牌顺子 题目描述 扑克牌顺子 源码 题目描述 扑克牌顺子 LL今天心情特别好 因为他去买了一副扑克牌 发现里面居然有2个大王 2个小王 一副牌原本是54张 他随机从中抽出了5张牌 想测测自己的手气 看看能不能抽到
  • python,tensorflow,keras,pandas,numpy版本不匹配的问题(已解决)

    事情的起因 因为自己手残 更新了我搭建的tensorflow虚拟环境中numpy的版本 更高 导致import pandas 时出现版本不匹配的问题 于是将pandas一起更新 这时 pandas和numpy可以使用 但是由于tensorf
  • Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程 O丶ne丨柒夜的博客 CSDN博客 查看使用7007端口的进程 ps aux grep 7007 Linux 目录结构 基本介绍 1 liux的文件系统是采用级层式的树状目录结构 在此结构中的
  • 五种边缘检测算法(附代码)

    一 Roberts 边缘检测算子 Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理 采用对角线方向相邻两像素之差 即 然后根据式 1 9 2 计算出Roberts的梯度幅度值 它们的卷积算子为 Roberts检