本文主要参考内容:1.https://www.cnblogs.com/dengdan890730/p/6145585.html

2.https://blog.csdn.net/qq_40238526/article/details/89840463

3.https://blog.csdn.net/saltriver/article/details/78847964

4.https://blog.csdn.net/saltriver/article/details/78987170

5.https://blog.csdn.net/saltriver/article/details/78990520

6.https://blog.csdn.net/Zachary_Co/article/details/78831806

7.https://www.cnblogs.com/YiXiaoZhou/p/5891645.html​​​​​​​

目录

1.图像是函数

2.图像梯度

3.图像二阶导数

4.图示图像梯度与二阶导数的不同

5.LoG算子与DoG算子



​​​​​​​

1.图像是函数

我们能把一幅图像看作是一个二维函数,以灰度图像来说:定义成 f(x,y) 或者 I(x,y);任何一对空间坐标(x, y)处f的值(即函数值)看作该坐标点处的强度(intensity)或灰度。需要强调的是把图像作为二维函数时,它是一个离散函数,且取值范围有所限定,比如x, y轴的坐标值,函数取值也限定在某个区间之内。将lena图像每一点的强度在三位空间上看一下:如下图,x轴、y轴表示图像长宽的坐标,z轴表示每一点的强度\灰度值。(图像来源于链接3,为便于理解,放于此处,如有侵权。联系笔者删除)

对于彩色图像,同样可以看作是一个向量函数。f(x, y) = [r(x, y), g(x, y), b(x, y)],即为在坐标(x,y)处三个通道处函数值(在该坐标点处三个通道的灰度)组成的向量。

2.图像梯度

        图像梯度表示图像灰度的变化率。得到像素点与其相邻像素的灰度值变化。

图像边缘可以使用一阶导数的极值来判断。

        梯度(导数\微分):函数的变化率。

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

图像是一个二维函数 f(x,y),则其微分是偏微分:

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

我们利用梯度的本质目的,是要找到某像素与其相邻像素的灰度差值。原始定义的梯度计算方法只是灰度差值计算方法中的一种,还可以有其它计算方法来度量这种变化。以下图来说明(图像来源于链接3,为便于理解放于此处,如有侵权,联系笔者删除):

根据图像梯度的定义:x方向的梯度=z8-z5;y方向的梯度=z6-z5。

其实灰度差值计算算法还有很多,可以来衡量灰度变化,比方说Robert算子就是使用了交叉计算梯度。Sobel算子使用了八邻域的值来衡量梯度变化。

罗伯特(Roberts)交叉梯度算子,定义的是:
gx = z9-z5
gy = z8-z6

sobel算子的定义如下(与中心点Z5更近的点Z2,Z4,Z6,Z8的权重为2,其它对角线上的权重为1):
gx = (z7+2*z8+z9)-(z1+2*z2+z3)
gy = (z3+2*z6+z9)-(z1+2*z4+z7)

3.图像二阶导数

图像的二阶导数:求导数的导数,这对灰度变化强烈的地方会更敏感。

二阶导数突然高出(低出)零很多,表示当前像素的灰阶递进被打破,人眼视觉会感到突然出现了亮点(暗点)。如果图像灰阶是均匀地由暗到亮(如 [10 20 30 40...]),则各点的梯度=10,同时二阶导数=0,表示图像没有像素突然亮起来或暗下去。二阶导数的符号可用来判断一个转变(是从亮到暗或者相反。

对于阶跃边缘还可以使用二阶导数的过零点(zero-acrossing)判定。计算出每一像素点的二阶导数值之后,我们希望找到过零点,但图像是离散的,要找过零点还需进行拟合,拟合后的曲线找到过零点还要在离散过程很麻烦且完全没必要。这里可以直接寻找二阶导数正负交替的点作为边缘点。

二阶微分的基本定义:

图像是一个二维函数f(x,y),其二阶微分当然就是二阶偏微分(推导的时候结合上一部分介绍的的离散一阶微分):

令x=x-1,则:

于是,在x和y方向上,有:

我们把x方向和y方向的二阶导数结合在一起(这实质上就是著名的拉普拉斯二阶微分算子):

4.图示图像梯度与二阶导数的不同

用下图来展示一阶导数(梯度)和二阶导数的不同(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除):

由上图可以观察到:对于一阶导数,除了灰度突变的地方,其它灰度缓慢变化的地方数值相同,而且符号也相同。而二阶导数在灰度缓慢变化的地方数值为0,而在灰度突变的地方有符号相反的2个数值。也即二阶导数产生了双边缘,在边缘处,有符号相反的二阶导数值,可以强化这个边缘的对比度。

在用一阶导数进行图像增强时,用的是x梯度及y梯度的绝对值(简化后的,本来应该是平方和再开平方)加在原图像上,如上图中间列加上x方向的一阶导数的绝对值,中间四个值变为100,150,60,50,相加前100与50的灰度相差50,相加后150与60的灰度相差90,对比度显然增强了,尤其是图像中物体的轮廓和边缘,与背景大大加强了区别,这就是用梯度来增强图像的原理。

在用二阶导数进行图像增强时,它没有使用二阶导数的绝对值,而是保留了导数的符号,在原图上减去(到底用加上还是减去,与中心点f(x,y)的系数有关,这个定义的拉普拉斯二阶导数中,f(x,y)的系数是-4,是负的,原图像就要减去拉普拉斯二阶导数图像)二阶导的数值实现图像增强。如中间一列减去二阶导数后中间四个数变为:100,150,10,40;因为二阶导的双边缘,可以看到其灰度差变为了140,对比度增强了很多。

二阶导数对噪声点也更加敏感,会放大噪声的影响。如下图(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除)

边缘检测的边缘剖面图,图像中的边缘一般分为两种:屋脊型边缘和阶跃型边缘,如下图横坐标表示图像的一个方向(x或者y),纵坐标表示像素值(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除):

其中a,c子图是屋脊型边缘,向a那种函数趋势像屋脊的类型称为屋脊型边缘,c是a反方向情况,b,d是阶跃型边缘。边缘的检测可以通过一阶导数、二阶导数计算,我们以a,b图为例(c,d类似),其一阶导数,二阶导数图如下:

在实际应用中,一般只考虑阶跃边缘,因为只要采样足够或者说窗口足够小,屋脊型边缘也可以看做是阶跃边缘。

从图像中也可以看出来:

对于阶跃边缘可以使用一阶导数的极值来判断边缘。

对于阶跃边缘还可以使用二阶导数的过零点(zero-acrossing)判定。计算出每一像素点的二阶导数值之后,我们希望找到过零点,但图像是离散的,要找过零点还需进行拟合,拟合后的曲线找到过零点还要在离散过程很麻烦且完全没必要。这里可以直接寻找二阶导数正负交替的点作为边缘点。

5.LoG算子与DoG算子

LoG(Laplacian of Gaussian)算子和DoG(Difference of Gaussian)算子是图像处理中实现极值点检测(Blob Detection)的两种方法。通过利用高斯函数卷积操作进行尺度变换,可以在不同的尺度空间检测到关键点(Key Point)或兴趣点(Interest Point),实现尺度不变性(Scale invariance)的特征点检测。

LoG:
        由上一节知道Laplace算子通过对图像求取二阶导数的零交叉点(zero-cross)来进行边缘检测,但是由于Laplace算子对出现的独立噪声非常敏感,所以一般先对图像进行平滑之后再使用laplace算子检测边缘。

常用的二维高斯函数如下:

原图像与高斯核函数卷积后再做laplace运算:

定义高斯拉普拉斯算子:

相当于对高斯模板先进行Laplace再与图像进行平滑。

将LOG展开,看其具体形式

所以:

也就是原图像高斯平滑后乘以与位置有关的系数。

计算出每一像素点使用LoG之后的数值之后,与laplace算子可以直接寻找二阶导数正负交替的点作为边缘点,此处只是过滤了噪点。

斑点检测是指在数字图像中找出和周围区域特性不同的区域,这些特性包括光照或颜色等。一般图像中斑点区域的像素特性相似甚至相同,某种程度而言,斑点块中所有点是相似的。

在边缘检测中,寻找的是二阶导数的零点,可是在斑点检测中寻找的是二阶导数的极值点。

如下图:对于蓝色的目标区域,红色的椭圆就是在检测边缘,黑色的椭圆就是在检测斑点区域。(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除)

边缘检测到斑点检测的过程对二阶导数的影响(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除):

这个示意图中上一行从左到右表示的是原始矩形脉冲信号,脉冲信号的周期越来越短,而下一行则表示对应周期在相同尺度下的LoG结果。可以发现总的LoG曲线其实是两条边界上产生的LoG结果函数的叠加,当两条边界足够小时,在该尺度脉冲下就被作为了blob,这时候LoG曲线的极值就对应着blob的中心。

这也说明检测blob时,尺度非常重要,不像上述示例中信息可以缩减保持同样的尺度,因为图像的大小是固定的,所以我们需要将尺度变大,只有尺度大于一定值得时候blob才可以通过LoG的极值判定。信号在不同尺度下的响应,随着尺度的增大,LoG算子的最大幅度逐渐减小,导致响应也随着尺度的增大而减小;为可以准确找到极值点,需要对LoG算子进行尺度归一化。如下图(图像来源于链接5,为便于理解放于此处,如有侵权,联系笔者删除):

从上图可以看出来,我们在检测blob时就可以使用不同的尺度计算LoG响应,选择产生最强响应的尺度,在该尺度上对应的极值就是blob的中心位置了。

在使用LoG算子进行Blob检测时,首先在不同尺寸上对图像进行LoG,然后检测在尺度空间和图像空间都是极值的点,就是blob区域的中心点。也是SIFT与SURF中采用的。

DoG算子:

DoG算子是高斯函数的差分,具体到图像中,就是将图像在不同参数下的高斯滤波结果相减,得到差分图。有理论可以推导出,检测归一化的LoG在尺度空间的极值近似于检测DoG空间的极值,由于高斯差分的计算更加简单,所以常用DoG算子近似替代LoG算子。

文中若有不妥或错误之处,还望指出。

图像处理基础中的数学知识及其物理意义相关推荐

  1. 压缩感知中的数学知识:投影矩阵(projection matrix)

    题目:压缩感知中的数学知识:投影矩阵(projection matrix) ========================背景======================== 关注于投影矩阵主要是看 ...

  2. 机器学习中的数学知识(part4)--拟牛顿法

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 拟牛顿法 面临的问题(局部极小/鞍点) 机器学习中的数学知识 拟牛顿法

  3. 机器学习中的数学知识(part3)--凸优化

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 凸优化 非凸优化 机器学习中的数学知识 凸优化 下面是实际问题中常见的凸集,记住它们对理解后面的算法非常有帮助. n n

  4. 机器学习中的数学知识(part2)

    学习笔记,仅供参考,有错必纠 参考自:<机器学习与应用>–雷明 文章目录 机器学习中的数学知识 泰勒展开 梯度下降法 牛顿法 机器学习中的数学知识 泰勒展开 梯度下降法

  5. 机器学习中的数学知识(part1)

    学习笔记,仅供参考,有错必纠 参考自:<机器学习与应用>–雷明 文章目录 机器学习中的数学知识 偏导数与梯度 雅克比矩阵 Hessian矩阵 奇异值分解 向量与矩阵求导 机器学习中的数学知 ...

  6. 认识客观世界:数学描述与物理意义

    看过一个采访,主持人问查理芒格,投资最重要的品质是什么? "理性". 认识事物的本质就是客观认知. 透视客观世界,有两个方式,也可以说两个层次:物理模型+数学模型. 简化 世界的复 ...

  7. 图像处理中常用数学知识

    2.3.3 赋范空间 每个实数或复数,都有相对应的绝对值或者模,每一个n维矢量,也都可以定义其长度.如果把"长度"的概念推广到一般抽象空间中的元素上,就可以得到范数这个概念. 本节 ...

  8. 计算领域中的数学知识都有哪些?

    二进制是计算机系统的基础,余数被运用在很多常见的算法和数据结构中,而布尔代数是编程中控制逻辑的灵魂. 二进制.余数和布尔代数 1 二进制 许多专业人士都认为计算机的起源来自数学中的二进制计数法.这样的 ...

  9. NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(二)

    一.计算机基础部分 bios bios_百度百科 如果某个进制下7*7=41等式成立,那12*12=? 如果某个进制下7*7=41等式成立,那12*12=?_百度知道 计算机加电后操作系统启动过程 计 ...

最新文章

  1. Exchange Server 2010安装测试
  2. [Swift]LeetCode218. 天际线问题 | The Skyline Problem
  3. IT顾问成长分享沙龙
  4. 业务行为的分析和设计
  5. posix多线程有感--线程高级编程(条件变量)
  6. hdu_2063,二分图最大匹配的学习
  7. linux top交叉编译_ARM Linux交叉编译工具链的制作
  8. android2.2桌面,手机桌面课表软件
  9. 四、Delphi 2009 泛型容器单元(Generics.Collections)[3]: TStackT
  10. 早上起来CSDN的PC端主页积分变成了0
  11. matlab的pulse使用想法
  12. ubuntu安装postgreSQL 9.3
  13. numpy reshape
  14. 你们知道内卷化最严重的地方是哪里吗?
  15. NTKO OFFICE控件帮助文档部分汇总
  16. 图片去水印的原理_去水印简单操作:图图去水印
  17. 开题报告的选题依据怎么写?
  18. 存储文件用 云服务器推荐推荐,云存储服务器推荐
  19. DIV+CSS排版技巧
  20. 系统安全漏洞扫描绝佳助手之Nmap详解(转)

热门文章

  1. Java.DNA序列
  2. 用Windows命令实现创建python文件
  3. AI 替换人类工作的进程感想
  4. 超好用的图标库在 LVGL 上的转换与支持
  5. 什么是主机内存缓冲区或 HMB NVMe SSD?
  6. 漫画 | 编程语言三巨头的陨落
  7. 锦隆驾校考试场---小路
  8. 森林冰火人小游戏排行榜,森林冰火人pk孩子为王
  9. Hibernate的基本用法
  10. 新睿云电脑带你了解云电脑吃鸡怎么样?