梯度和梯度算子(Roberts,Sobel,Laplace)
机器学习和深度学习中,梯度是一个很重要的概念。在大部分机器学习优化问题中都可以通过梯度下降法处理。要介绍梯度就必须了解导数(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)相关推荐
- 图像梯度特征的常用算子:Sobel、Prewitt、Roberts
索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值.在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量. Sob ...
- 图像边缘提取——梯度算子、Roberts算子、prewitt算子、Sobel算子、Kirsch算子、LOG算子的matlab实现
#图像边缘提取-- ##梯度算子.Roberts算子.prewitt算子.Sobel算子.Kirsch算子.LOG算子的matlab实现 matlab代码 clear; f=rgb2gray(imre ...
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)
目录 锐化(高通)空间滤波器 使用一阶导数锐化图像-梯度 锐化(高通)空间滤波器 平滑通过称为低通滤波 类似于积分运算 锐化通常称为高通滤波 微分运算 高过(负责细节的)高频,衰减或抑制低频 使用一阶 ...
- (七)图像处理中常用算子Laplacian\Sobel\Roberts\Prewitt\Kirsch
1.拉普拉斯(Laplacian)算子 1.1基础介绍 最简单的各向同性导数算子是拉普赖斯算子,其具有旋转不变性,对于两个变量的函数f(x,y)f(x,y)f(x,y),其定义为 ▽2f=∂2f∂x2 ...
- GDAL 遥感 图像处理 锐化(Laplace算子、Sobel算子)
GDAL 图像锐化 简介 拉普拉斯(Laplace)算子 部分代码: 索贝尔(Sobel)算子 部分代码: 处理效果 原图 (Laplace) (Sobel) 结尾 参考文章 简介 图像锐化(imag ...
- 图像梯度算法中算子的由来
相关概念 如何求图像的梯度? 求图像的梯度,一般是对灰度图像或者彩色图像进行操作.数字图像就是离散的点值谱,也可以叫二维离散函数.图像的梯度就是这个二维离散函数的求导. 导数(Derivative) ...
- 边缘检测,Roberts 算子,Sobel算子,Canny 算子
边缘检测 在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标.目标与背景.区域与区域之间.边缘表明一个特征区域的终结和另一特征区域的开始.边缘所分开区域的内部特征或属性是一致的,而不 ...
- python图像锐化 增强边缘_[Python图像处理]十一.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子,Schar算子...
Roberts算子 Roberts算子即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条.常用来处理具有陡峭的第噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更 ...
- 【OpenCV】32 图像梯度–更多梯度算子(rober算子、prewitt算子)
32 图像梯度–更多梯度算子(rober算子.prewitt算子) 代码 import cv2 as cv import numpy as npsrc = cv.imread("../ima ...
最新文章
- 机器学习中的分类距离
- 任务栏网速监控工具NetSpeedMonitor
- 【算法知识】详解选择排序算法
- c++ 单引号和双引号
- java初学者必看的学习路线
- 开源项目UIL(UNIVERSAL-IMAGE-LOADER)
- 对话哈佛大学教授Lukin:量子计算将在我们有生之年普及!
- 世界各国 MCC 和 MNC 列表
- linux的鼠标右键老是建立文件夹,右键新建只有文件夹怎么办|右键只能新建文件夹解决方法-系统城...
- Kali下安装 dvwa 的完整详细教程
- 建造者2全部岛屿_勇者斗恶龙建造者2空荡岛流程攻略介绍
- 递归算法计算二叉树中叶子结点数目 c语言,编写递归算法,计算二叉树中叶子结点的数目。...
- 【硬刚大数据】从零到大数据专家之Apache Doris篇
- 三菱plc传送文件到服务器,三菱Q系列PLC通过FTP文件传输案例介绍
- [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
- 安卓获取手机视频和图片
- Hazelcast Jet Processor
- DD虚拟按键驱动免费下载
- ffmpeg音频滤镜
- 使用python和tornado实现多人网页聊天程序--界面
热门文章
- postman使用教程1
- hp台式计算机硬盘如何取出,惠普台式机不读硬盘怎么办
- 华为电脑如何投屏到电视linux,华为手机怎么投屏到电视?这2个方法又快又简单...
- 每日新闻:抖音杀入小程序战场;懂车帝发布SaaS系统 ; 汉得开源其企业级PaaS平台;甲骨文推出“第二代云” 向AWS发起挑战...
- adobe pdf 高级搜索功能
- Windows API一日一练 29 SelectObject和DeleteObject函数
- 对于iphone X 兼容性处理的css适配方法和js适配方法
- python定时替换文件内容
- mysql中存储指纹数据_业务数据指纹(MD5)的使用和存储注意
- python--dict容器