相关概念

如何求图像的梯度?

求图像的梯度,一般是对灰度图像或者彩色图像进行操作。数字图像就是离散的点值谱,也可以叫二维离散函数。图像的梯度就是这个二维离散函数的求导。 
导数(Derivative)是微积分中的重要基础概念。在百度百科里面是这样解释的:当函数y=f(x)的自变量X在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f’(x0)或df/dx(x0)。 
图像的求导就是水平方向或者垂直方向的,相邻两个像素之间的差值。 
图像梯度: G(x,y) = dx(i,j) + dy(i,j); 
dx(i,j) = I(i+1,j) - I(i,j); 
dy(i,j) = I(i,j+1) - I(i,j); 
其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。 
图像梯度一般也可以用中值差分: 
dx(i,j) = [I(i+1,j) - I(i-1,j)]/2; 
dy(i,j) = [I(i,j+1) - I(i,j-1)]/2;

图像中一阶微分怎么求?

首先看一下一维的微分公式Δf = f(x+1) – f(x), 对于一幅二维的数字图像f(x,y)而言,需要完

成XY两个方向上的微分,所以有如下的公式:

分别对X,Y两个方向上求出它们的偏微分,最终得到梯度Delta F.

对于离散的图像来说,一阶微分的数学表达相当于两个相邻像素的差值,根据选择的梯度算

子不同,效果可能有所不同,但是基本原理不会变化。最常见的算子为Roberts算子,其它

常见还有Sobel,Prewitt等算子。以Roberts算子为例的X,Y的梯度计算演示如下图:

一、问题

1、图像梯度和算子之间是什么关系?为什么求图像的梯度要用到算子?

图像的梯度可以用一阶导数和二阶偏导数来求解。但是图像以矩阵的形式存储的,不能像数学理论中对直线或者曲线求导一样,对一幅图像的求导相当于对一个平面、曲面求导。对图像的操作,我们采用模板对原图像进行卷积运算,从而达到我们想要的效果。而获取一幅图像的梯度就转化为:模板(Roberts、Prewitt、Sobel、Lapacian算子)对原图像进行卷积,不过这里的模板并不是随便设计的,而是根据数学中求导理论推导出来的。下面就逐一分析各梯度算子的推导过程。

2、算子的推导 
1、知识引入: 
在一维连续数集上有函数f(x),我们可以通过求导获得该函数在任一点的斜率,根据导数的定义有: 

在二维连续数集上有函数f(x,y),我们也可以通过求导获得该函数在x和y分量的偏导数,根据定义有: 

2、梯度和Roberts算子: 
对于图像来说,是一个二维的离散型数集,通过推广二维连续型求函数偏导的方法,来求得图像的偏导数,即在(x,y)处的最大变化率,也就是这里的梯度: 
 
梯度是一个矢量,则(x,y)处的梯度表示为: 
其大小为: 
因为平方和平方根需要大量的计算开销,所以使用绝对值来近似梯度幅值: 
 
方向与α(x,y)正交: 
其对应的模板为:

上面是图像的垂直和水平梯度,但我们有时候也需要对角线方向的梯度,定义如下: 
 
对应模板为:

     上述模板就是Roberts交叉梯度算子。
  • 1
  • 2

2*2大小的模板在概念上很简单,但是他们对于用关于中心点对称的模板来计算边缘方向不是很有用,其最小模板大小为3*3。3*3模板考虑了中心点对段数据的性质,并携带有关于边缘方向的更多信息。

3、Prewitt和Sobel算子: 
在3*3模板中:

我如下定义水平、垂直和两对角线方向的梯度: 
 
该定义下的算子称之为Prewitt算子: 

Sobel算子是在Prewitt算子的基础上改进的,在中心系数上使用一个权值2,相比较Prewitt算子,Sobel模板能够较好的抑制(平滑)噪声。 
计算公式为: 
Sobel算子:

上述所有算子都是通过求一阶导数来计算梯度的,用于线的检测,在图像处理中,通常用于边缘检测。在图像处理过程中,除了检测线,有时候也需要检测特殊点,这就需要用二阶导数进行检测。

4、Lapacian算子: 
一阶导数:

二阶导数:

我们感兴趣的是关于点x的二阶导数,故将上式中的变量减1后,得到: 

在图像处理中通过拉普拉斯模板求二阶导数,其定义如下: 
 
对应模板为: 
 
模板中心位置的数字是-8而不是-4,是因为要使这些系数之和为0,当遇到恒定湖对区域时,模板响应应将0。

在用lapacian算子图像进行卷积运算时,当响应的绝对值超过指定阈值时,那么该点就是被检测出来的孤立点,具体输出如下: 

部分引用参考来源:

http://blog.csdn.net/swj110119/article/details/51777422

http://blog.csdn.net/jia20003/article/details/7562092

图像梯度算法中算子的由来相关推荐

  1. 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波

    图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--中值滤波/均值滤波/高 ...

  2. opencv-python图像处理 ----图像梯度、Sobel算子

    一.图像的梯度处理 1.Sobel算子 梯度可以按照x方向或者y方向求梯度,其实就是在看像素点的差异变化情况,比如黑白物体的交界,其像素值变化差异是非常大的. 求梯度计算使用的函数就叫做Sobel算子 ...

  3. 数字图像处理:(1)图像梯度以及算子应用

    1.数学意义上的梯度 在理解图像梯度是什么的时候,我们首先要回忆一下以前学习过得梯度是什么? 见链接: https://blog.csdn.net/m0_37957160/article/detail ...

  4. 图像梯度的解释及相关梯度算子的实现

    本文将介绍图像梯度的应用以及一些相关梯度算子的实现 一.什么是梯度? 梯度不是一个实数,它是一个有大小有方向的向量.现在以一个二元函数举例,假设一个二元函数f(x,y),在某点的梯度有: 整理后得到: ...

  5. OpenCV+python:图像梯度

    1,图像梯度的概念 梯度简单来说就是求导,在图像上表现出来的就是提取图像的边缘(无论是横向的.纵向的.斜方向的等等),所需要的是一个核模板.模板的不同结果也不同.所以能够看到,全部的这些个算子函数,归 ...

  6. OpenCV——图像梯度与边缘检测(python实现)

    OpenCV--图像梯度与边缘检测 6.1 简介 严格的说,梯度计算需要求导数.但是图像梯度的计算,是通过计算像素值的差得到梯度的近似值.图像梯度表示的是图像变化的速度,反映了图像的边缘信息. 边缘是 ...

  7. matlab 灰度共生矩阵熵,结合灰度共生矩阵和熵的图像修复算法

    摘 要: 利用灰度共生矩阵提取图像纹理特征值,然后根据熵值的大小来实现模块大小的选择.另外,在寻找最佳匹配块时,同时考虑了颜色信息的差异和空间距离的因素.最后,给出了客观评价图像修复质量的PSNR度量 ...

  8. 基于DSP的图像旋转算法数据调度策略

    基于DSP的图像旋转算法数据调度策略 [日期:2008-8-14] 来源:电子技术应用  作者:李筱琳,冯 燕,何亦征 [字体:大 中 小] <script src="http://w ...

  9. 策略梯度算法简明教程

    为什么需要策略梯度 基于值的强化学习方法一般是确定性的,给定一个状态就能计算出每种可能动作的奖励(确定值),但这种确定性的方法无法处理一些现实的问题,比如玩100把石头剪刀布的游戏,最好的解法是随机的 ...

最新文章

  1. echarts图表实例
  2. 文件签名魔塔50层android反编译破解
  3. String是一个很普通的类 - Java那些事儿
  4. c语言各类随机函数,怎样让c语言中的随机函数真正随机?
  5. [转载] python中pass的使用_Python pass详细介绍及实例代码
  6. 看大厂NLP的面试经验之后的一些思考总结
  7. 基于Springboot的景区旅游管理系统 JAVA MySQL
  8. php怎么生成缩略图,php怎么生成缩略图
  9. 苹果iPhone/iPad不越狱怎么破解付费APP?
  10. 测试项目实战----RuoYi后台管理系统
  11. DroidCam---将手机转为电脑外接摄像头的软件(提供下载链接)
  12. 计算机与生活的ppt,计算机应用基础说课PPT
  13. 如何解决百度识图中图片被限制百度防盗链破解方法
  14. win10任务栏假死原因和解决方法
  15. 常见十大量化投资策略
  16. MADlib——基于SQL的数据挖掘解决方案(24)——分类之决策树
  17. css cursor 鼠标指针样式总结
  18. 腾讯云服务器部署(保姆级)
  19. C#中,System.ComponentModel.Container详解
  20. 华为服务器怎么进入系统,服务器怎么进入系统

热门文章

  1. 专题三:羊毛党络绎不绝,电商行业防不胜防
  2. 零基础如何学习 Web 安全?
  3. 信息检索——扩展词模型研究与应用论文
  4. abaqus对实体单元进行复合材料每层厚度定义
  5. 中小企业发展电子商务的必要性
  6. armv8 ARM64 AARCH64
  7. PYTHON实现机械臂运动检测
  8. java实现平衡二叉树
  9. 安天移动安全应对“DressCode”威胁,发布企业移动威胁检查工具
  10. 计算机中文输入法教案,中文输入教学设计.doc