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

news/2024/9/16 23:21:00

1、数学意义上的梯度

在理解图像梯度是什么的时候,我们首先要回忆一下以前学习过得梯度是什么?

见链接:

https://blog.csdn.net/m0_37957160/article/details/113678344

一句话梯度是一个向量,梯度向量就像一个指路明灯一样,他永远指向方向导数变化最大的那个方向,那么我的这个梯度模的大小就等于方向导数最大的那个大小。

在数学上,梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)

2、灰度梯度

百科解读灰度梯度:

把图像看成二维离散函数,灰度梯度其实就是这个二维离散函数的求导,用差分代替微分(由于数字图像是离散的二维图像,故用差分代替微分),求取图像的灰度梯度。常用的一些灰度梯度模板有:Roberts 梯度、Sobel 梯度、Prewitt 梯度、Laplacian 梯度。

3、图像梯度

图画梯度:维基百科关于Image Gradient(图画梯度)的

图画梯度是指图画强度或色彩的方向改动。图画梯度是图画处理的根底结构之一。例如,Canny边际检测器运用图画梯度进行边际检测。在用于数字图画编辑的图形软件中,梯度或色彩梯度一词也用于表明色彩的逐步混合,能够以为是从低到高值的均匀渐变,如下图中从白色到黑色所运用的渐变。数学上,一个双变量函数(这里是图画强度函数)在每个图画点处的梯度是一个二维向量,其分量由水平缓笔直方向上的导数给出。在每个图画点上,梯度向量指向或许最大强度增加的方向,梯度向量的长度对应于该方向的改动率。”

图像梯度:百科解读

微分就是求函数的变化程度(能否用直线增量去代替曲线增量的问题当变化\Delta x足够小时),即导数(梯度)(为什么大角度这样解释我觉得不太严谨????),那么对于图像来说,可不可以用微分来表示图像灰度的变化率呢,当然是可以的,前面我们提到过,图像就是函数嘛。(可以使用导数(梯度),衡量图像灰度的变化率,因为图像就是函数。正因如此,我们引入的图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。)

 在微积分中,一维函数的一阶微分的基本定义是这样的:

而图像是一个二维函数f(x,y),其微分当然就是偏微分。因此有:

因为图像是一个离散的二维函数,ϵ不能无限小,我们的图像是按照像素来离散的,最小的ϵ就是1像素。因此,上面的图像微分又变成了如下的形式(ϵ=1): 

这分别是图像在(x, y)点处x方向和y方向上的梯度,从上面的表达式可以看出来,图像的梯度相当于2个相邻像素之间的差值。

----------------------------这就是个人理解的图像梯度的解读 

那么,这个梯度(或者说灰度值的变化程度)如何增强图像的清晰度呢?

我们先考虑下x方向,选取某个像素,假设其像素值是100,沿x方向的相邻像素分别是90,90,90,则根据上面的计算其x方向梯度分别是10,0,0。这里只取变化率的绝对值,表明变化的大小即可。

我们看到,100和90之间亮度相差10,并不是很明显,与一大群90的连续灰度值在一起,轮廓必然是模糊的。我们注意到,如果相邻像素灰度值有变化,那么梯度就有值,如果相邻像素灰度值没有变化,那么梯度就为0。如果我们把梯度值与对应的像素相加,那么灰度值没有变化的,像素值不变,而有梯度值的,灰度值变大了。
 

 新图像是原图像与梯度求解后的图像(叫梯度图像)相加。

在上边这幅图中可以看出,如果一副图像的相邻灰度值有变化,那么梯度就存在,如果图像相邻的像素没有变化,那么梯度就是0,把梯度值和相应的像素相加,那么灰度值没有变化的,像素就没有变化,灰度值变了,像素值也就变了。我们看到,相加后的新图像,原图像像素点100与90亮度只相差10,现在是110与90,亮度相差20了,对比度显然增强了,尤其是图像中物体的轮廓和边缘,与背景大大加强了区别,这就是用梯度来增强图像的原理。

总结:将图像函数f(x,y)梯度表达式表示出来:(连续函数的话使用的是导数,下面图像是离散的,所以使用差分近似代替)

幅度:

方向角:

 对于数字图像来说,相当于是二维离散函数求梯度,使用差分来近似导数:(差分近似代替上面导数的求解

 因此,像素点(x,y)处的梯度值和梯度方向分别是:

这里的平方+开方的,计算量太大,于是一般用绝对值来近似平方和平方根的操作,来降低计算量:

在上述的推论中我们得到,梯度的方向是函数变化最快的方向,所以当函数中存在边缘时,一定有较大的梯度值,相反,当图像中有比较平滑的部分时,灰度值变化较小,则相应的梯度也较小,图像处理中把梯度的模简称为梯度,由图像梯度构成的图像成为梯度图像。 

一些经典的图像梯度算法是考虑图像的每个像素的某个邻域内的灰度变化,利用边缘临近的一阶或二阶导数变化规律,对原始图像中像素某个邻域设置梯度算子,通常我们用小区域模板进行卷积来计算,有Sobel算子、Robinson算子、Laplace算子等。

卷积操作见链接:

https://blog.csdn.net/m0_37957160/article/details/118861275?spm=1001.2014.3001.5501

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

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

相关文章

CMD——ping及用其检测网络故障

Ping命令全称Packet Internet Grope,即因特网包探测器。通过调用ICMP(因特网控制报文协议),发送一份ICMP回显请求给目的主机,并等待返回ICMP回显应答。一般用来测试源主机到目的主机网络的连通性(只有在安装…

Python,OpenCV鼠标事件进行矩形、圆形的绘制(随机颜色、随机半径)

Python,OpenCV鼠标事件进行矩形、圆形的绘制(随机颜色、随机半径) 1. 效果图2. 源码参考这篇博客将介绍鼠标事件,并介绍鼠标事件矩形、圆形的绘制; 所有的鼠标事件(左键按下、左键释放、右键按下、右键释放、左键双击等);绘制随机半径、随机颜色圆形;绘制矩形、切换按…

数字图像处理:(2)一阶微分和二阶微分在数字图像处理中的应用

1、微分定义 2、微分性质 微分是对函数局部变化率的一种表示。 在图像处理中有基于一阶微分和二阶微分的锐化空间滤波器(图像锐化是增强图像的突变部分),其实一阶微分和二阶微分算子都可以得到图像的边缘,只是效果不一样。 一阶微分的性质&#xff1a…

Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()

Python,OpenCV图像金字塔cv2.pyrUp, cv2.pyrDown 1. 效果图2. 原理2.1 什么是图像金字塔2.2 金字塔分类2.3 应用3. 源码参考这篇博客将介绍图像金字塔的理论,及用图像金字塔cv2.pyrUp(), cv2.pyrDown()实现苹果与梨的完美融合; 1. 效果图 高斯金字塔效果图如下: 一层是另…

数字图像处理:(3)一阶微分算子在图像处理中的应用

目录 1、数学基础 2、图像微分知识 3、滤波器 4、微分算子 4.1、一阶微分算子 4.1.1、Sobel算子 4.1.2、scharr算子 4.1.3、 Roberts交叉梯度算子 4.1.4、Prewitt算子 4.1.5、 Isotropic Sobel算子 1、数学基础 函数一阶导数对应的微分称为一阶微分; 一阶微分的微分…

数字图像处理:(4)二阶微分在数字图像处理中的应用

目录 0、前言 1、二阶微分算子的性质 2、二阶微分算子 2.1、Laplacian算子 2.2、LOG算子 0、前言 微分算子其应用着重于图像中的灰度突变区域,而非灰度级缓慢变化的区域。 之前所介绍的一阶微分算子,他们的计算都是一次,左边减去右边一…

Java BufferImage图片处理(获取宽高、图片截取、转换灰度图)

Java BufferImage图片处理(获取宽高、截取、转换灰度图)1. 效果图2. 源码参考这篇博客将介绍如何使用Java读取图片为byte[]数组,或者BufferedImage及互相转换,并进行了转换图片为灰度图,截取部分区域等; 1…

T-SQL Convert转换时间类型

关键字: sql 时间 转化 SQL中CONVERT转化函数的用法 格式: CONVERT(data_type,expression[,style]) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才用到. 例子: SELECT CONVERT(varchar(30),getdate(),101) n…