机器学习和深度学习中,梯度是一个很重要的概念。在大部分机器学习优化问题中都可以通过梯度下降法处理。要介绍梯度就必须了解导数(derivative),偏导数(partial derivative)和方向导数(directional derivative)。

这些概念在高等数学中都有介绍,也可以参考百度和维基百科,这里我们就只做简单回忆:

  • 导数

导数反映函数在某点处沿x轴正方向的变化率,可以理解为,如果某点导数大于0,则该点沿x轴正方向递增,如果某点小于0,则递减。

  • 偏导数

导数和偏导数性质一致,但偏导数指多元函数中函数在某点沿坐标轴(x1,x2,xn)正方向变化率。也可以理解为,导数是自变量只有一个时的函数沿正方向变化率,而偏导数则是函数自变量大于一个时,每个自变量的变化率。

  • 方向导数

导数和偏导数的定义中,都是沿坐标轴正方向讨论函数变化率,而方向导数则是:函数上某点沿某一方向上的导数值(方向可选择)。

梯度

那么引出梯度的定义:

函数在某点梯度是一个向量,它的方向与取得最大方向导数的方向一致,而它的模则为方向导数的最大值。可以理解为梯度是函数在某点最大的方向导数,函数沿梯度方向有最大的变化率。

梯度的求法也很简单,对于函数只要在已知点求出X方向偏导数和Y方向偏导数,再取两方向偏导数和就可以。

梯度算子

图像的梯度计算可以通过使用不同的梯度算子实现,具体实现的过程是通过用梯度算子进行卷积运算的到,不了解卷积的同学可以自行百度。。。

这里介绍几种常用的梯度算子:

  • Roberts交叉梯度算子

Roberts交叉梯度算子(Roberts Cross Edge Detector)很好理解,就是对目标进行一个2*2的卷积核的卷积计算。卷积核有两个,分别用来计算垂直方向和水平方向,卷积核如下所示:

梯度幅值可以表示为:

为了方便计算,也可以这样计算:

梯度角度则可以表示为:

  • Sobel算子

Sobel梯度算子(Sobel Edge Detector)和Roberts算子类似,只不过引用了两个3*3的卷积核,分别用来计算垂直方向和水平方向,卷积核如下所示:

梯度幅值和梯度角度也可以通过上面介绍的式子求得

Sobel算子计算速度较慢于Roberts算子,但3*3的卷积核在更大程度上平滑了输入图像,使得图像对噪声的敏感性降低。

  • Prewitt算子

Prewitt算子与Sobel算子类似,卷积核如下所示:

  • Laplace算子

以上介绍的Roberts算子,Sobel算子和Prewitt算子都是一阶算子,而Laplace属于二阶算子。Laplace算子对噪声敏感,所以一般在降噪后的图像上使用。卷积核如下所示:

由于一阶算子的原理是计算目标点的一阶导数,由导数定义可知,x点导数可通过以下公式计算:

那么二阶算子则是计算目标点的二阶导数,可通过以下公式计算:

这也等同于(上式变量减1):

在图像中就可以表示为:

这就是上图第一个Laplace算子的由来。为了让该算子在45度方向上也有方向性,对该算子进行扩展得到上图第二个Laplace算子。

上述算子也可用于图像的边缘检测,边缘检测和检测算子及优缺点将在接下来的文章中介绍。

参考:

https://blog.csdn.net/walilk/article/details/50978864?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160885544016780296812509%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=160885544016780296812509&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-6-50978864.first_rank_v2_pc_rank_v29&utm_term=%E6%A2%AF%E5%BA%A6

https://blog.csdn.net/qq_18815817/article/details/78625845?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160902977216780266269292%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=160902977216780266269292&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-78625845.first_rank_v2_pc_rank_v29&utm_term=%E6%A2%AF%E5%BA%A6%E7%AE%97%E5%AD%90

https://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

梯度和梯度算子(Roberts,Sobel,Laplace)相关推荐

  1. 图像梯度特征的常用算子:Sobel、Prewitt、Roberts

    索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值.在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量. Sob ...

  2. 图像边缘提取——梯度算子、Roberts算子、prewitt算子、Sobel算子、Kirsch算子、LOG算子的matlab实现

    #图像边缘提取-- ##梯度算子.Roberts算子.prewitt算子.Sobel算子.Kirsch算子.LOG算子的matlab实现 matlab代码 clear; f=rgb2gray(imre ...

  3. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)

    目录 锐化(高通)空间滤波器 使用一阶导数锐化图像-梯度 锐化(高通)空间滤波器 平滑通过称为低通滤波 类似于积分运算 锐化通常称为高通滤波 微分运算 高过(负责细节的)高频,衰减或抑制低频 使用一阶 ...

  4. (七)图像处理中常用算子Laplacian\Sobel\Roberts\Prewitt\Kirsch

    1.拉普拉斯(Laplacian)算子 1.1基础介绍 最简单的各向同性导数算子是拉普赖斯算子,其具有旋转不变性,对于两个变量的函数f(x,y)f(x,y)f(x,y),其定义为 ▽2f=∂2f∂x2 ...

  5. GDAL 遥感 图像处理 锐化(Laplace算子、Sobel算子)

    GDAL 图像锐化 简介 拉普拉斯(Laplace)算子 部分代码: 索贝尔(Sobel)算子 部分代码: 处理效果 原图 (Laplace) (Sobel) 结尾 参考文章 简介 图像锐化(imag ...

  6. 图像梯度算法中算子的由来

    相关概念 如何求图像的梯度? 求图像的梯度,一般是对灰度图像或者彩色图像进行操作.数字图像就是离散的点值谱,也可以叫二维离散函数.图像的梯度就是这个二维离散函数的求导.  导数(Derivative) ...

  7. 边缘检测,Roberts 算子,Sobel算子,Canny 算子

    边缘检测 在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标.目标与背景.区域与区域之间.边缘表明一个特征区域的终结和另一特征区域的开始.边缘所分开区域的内部特征或属性是一致的,而不 ...

  8. python图像锐化 增强边缘_[Python图像处理]十一.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子,Schar算子...

    Roberts算子 Roberts算子即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条.常用来处理具有陡峭的第噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更 ...

  9. 【OpenCV】32 图像梯度–更多梯度算子(rober算子、prewitt算子)

    32 图像梯度–更多梯度算子(rober算子.prewitt算子) 代码 import cv2 as cv import numpy as npsrc = cv.imread("../ima ...

最新文章

  1. 机器学习中的分类距离
  2. 任务栏网速监控工具NetSpeedMonitor
  3. 【算法知识】详解选择排序算法
  4. c++ 单引号和双引号
  5. java初学者必看的学习路线
  6. 开源项目UIL(UNIVERSAL-IMAGE-LOADER)
  7. 对话哈佛大学教授Lukin:量子计算将在我们有生之年普及!
  8. 世界各国 MCC 和 MNC 列表
  9. linux的鼠标右键老是建立文件夹,右键新建只有文件夹怎么办|右键只能新建文件夹解决方法-系统城...
  10. Kali下安装 dvwa 的完整详细教程
  11. 建造者2全部岛屿_勇者斗恶龙建造者2空荡岛流程攻略介绍
  12. 递归算法计算二叉树中叶子结点数目 c语言,编写递归算法,计算二叉树中叶子结点的数目。...
  13. 【硬刚大数据】从零到大数据专家之Apache Doris篇
  14. 三菱plc传送文件到服务器,三菱Q系列PLC通过FTP文件传输案例介绍
  15. [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
  16. 安卓获取手机视频和图片
  17. Hazelcast Jet Processor
  18. DD虚拟按键驱动免费下载
  19. ffmpeg音频滤镜
  20. 使用python和tornado实现多人网页聊天程序--界面

热门文章

  1. postman使用教程1
  2. hp台式计算机硬盘如何取出,惠普台式机不读硬盘怎么办
  3. 华为电脑如何投屏到电视linux,华为手机怎么投屏到电视?这2个方法又快又简单...
  4. 每日新闻:抖音杀入小程序战场;懂车帝发布SaaS系统 ; 汉得开源其企业级PaaS平台;甲骨文推出“第二代云” 向AWS发起挑战...
  5. adobe pdf 高级搜索功能
  6. Windows API一日一练 29 SelectObject和DeleteObject函数
  7. 对于iphone X 兼容性处理的css适配方法和js适配方法
  8. python定时替换文件内容
  9. mysql中存储指纹数据_业务数据指纹(MD5)的使用和存储注意
  10. python--dict容器