2015-02-11 18:57:48 gggg_ggg 阅读数 6192


对于有些人,看这些枯燥的公式符号是件痛苦的事情;但痛苦后总会有所欣喜,如果你充分利用它的话,你更能体会到他的美妙;先来几张效果图,激发你学习数学的欲望:

                  注释:图像融合效果,分别应用了不同的算法

在图像图形处理中, 梯度、散度和旋度 有很重要的作用,比如图像修复中的解泊松方程,目标跟踪等等,可以说是他们无处不在。

来句废话:可能有些人,对于数学符号里面倒三角 正三角 符号的意思?与读法感到迷惑,现稍作解释;

△一般指拉普拉斯算子

▽读Nabla,奈不拉,也可以读作“Del” 这是场论中的符号,是矢量微分算符.高等数学中的梯度,散度,旋度都会用到这个算符.其二阶导数中旋度的散度又称Laplace算符


继续核心内容:

梯度、散度和旋度是矢量分析里的重要概念。之所以是“分析”,因为三者是三种偏导数计算形式。这里假设读者已经了解了三者的定义。它们的符号分别记作如下:

梯度、散度和旋度                                 

                                 

                                

从符号中可以获得这样的信息:

求梯度是针对一个标量函数,求梯度的结果是得到一个矢量函数。这里φ称为势函数

求散度则是针对一个矢量函数,得到的结果是一个标量函数,跟求梯度是反一下的;

求旋度是针对一个矢量函数,得到的还是一个矢量函数。

这三种关系可以从定义式很直观地看出,因此可以求“梯度的散度”、“散度的梯度”、“梯度的旋度”、“旋度的散度”和“旋度的旋度”,只有旋度可以连续作用两次,而一维波动方程具有如下的形式

梯度、散度和旋度                               (1)

其中a为一实数,于是可以设想,对于一个矢量函数来说,要求得它的波动方程,只有求它的“旋度的旋度”才能得到。下面先给出梯度、散度和旋度的计算式:

梯度、散度和旋度                         (2)

梯度、散度和旋度                          (3)

梯度、散度和旋度                           (4)

旋度公式略显复杂。这里结合麦克斯韦电磁场理论,来讨论前面几个“X度的X度”。

 

I.梯度的散度:

根据麦克斯韦方程有:

梯度、散度和旋度                                  

梯度、散度和旋度                                  (5)

则电势的梯度的散度为

梯度、散度和旋度                            

这是一个三维空间上的标量函数,常记作

梯度、散度和旋度                                 (6)

称为泊松方程,而算符2称为拉普拉斯算符。事实上因为定义

梯度、散度和旋度                                

所以有

梯度、散度和旋度                               

当然,这只是一种记忆方式。

当空间内无电荷分布时,即ρ=0,则称为拉普拉斯方程

梯度、散度和旋度                                      

当我们仅需要考虑一维情况时,比如电荷均匀分布的无限大平行板电容器之间(不包含极板)的电场,我们知道该电场只有一个指向,场强处处相等,于是该电场满足一维拉普拉斯方程,即

梯度、散度和旋度                                     

这就是说如果那边平行板电容器的负极板接地,则板间一点处的电压与该点距负极板的距离呈线性关系。

 

II.散度的梯度:

散度的梯度,从上面的公式中可以看到结果会比较复杂,但是它的物理意义却是很明确的,因为从麦克斯韦方程可以看出空间某点处电场的散度是该点处的电荷密度,那么再求梯度就是空间中电荷密度的梯度。这就好比说清水中滴入一滴红墨水,起初水面红色浓度最高,杯底浓度最低,这样水面与杯底形成一个浓度梯度,红墨水由水面向杯底扩散,最后均匀。在半导体中,载流子分布的不均匀会导致扩散电流。

散度的梯度这个概念其实不常用,因为计算复杂,但在后面讲用它来推导一个矢量恒等式。

 

III.梯度的旋度:

对于梯度的旋度,直接把(2)式代入(4)式中,有

梯度、散度和旋度

由于势函数在空间一点的领域内往往是有二阶连续混合偏导数的,因此上式的结果为0.所以说梯度的旋度为零,它的物理意义也是很明确的。

比如一个人从海平面爬到一座山上,无论它是从山的陡坡爬上去还是从缓坡爬上去,亦或者坐直升机上去,重力对他所做的功总是相等的,即力场的做工只与位移有关而与路径无关,这样的场称为保守场,而保守场是无旋场。再比如绘有等高线的地图,如果某点只有一个一根等高线穿过,那么该点有一个确定的相对高度。如果该点有两条或以上的等高线穿过,则这个点处在悬崖边上,这个点处是不可微,也就没有求梯度的意义。

 

IV.旋度的散度:

求旋度的散度也是将(4)式代入(3)式即可。若令

梯度、散度和旋度                            (7)

梯度、散度和旋度                                      

                                

                                

从而

梯度、散度和旋度                                   

                             

                             

将上面三式相加结果也为零。所以说旋度的散度为零,这就意味着一个散度场任意叠加上一个有旋场不会改变其散度,也就是说光凭矢量场的散度无法唯一地确定这个矢量场。而光凭矢量场的旋度也无法唯一地确定这个矢量,这是因为有旋场可以叠加上这么一个矢量场而不改变其旋度,而这个矢量场是一个标量函数的梯度。

 

V.旋度的旋度:

旋度的旋度将是本文的重点。若所研究的空间范围内是无源的,即ρ=0J=0,则根据麦克斯韦方程有:

梯度、散度和旋度                                (8)

梯度、散度和旋度                             (9)

梯度、散度和旋度                                   (10)

梯度、散度和旋度                               (11)

(9)式两端取旋度

梯度、散度和旋度                          (12)

再将(8)式代入(12)式有

梯度、散度和旋度                             (13)

看到这里容易让人想到式(1),前面说式(1)的方程为一维波动方程,那么跟(13)式有什么联系呢?棘手的问题是算旋度已经够复杂了,算旋度的旋度岂不是更费周折?幸好有矢量恒等式可以利用来帮助简化计算,这里要用到前面所讲的散度的梯度。即有:

梯度、散度和旋度                          (14)

这里拉普拉斯算子作用于一个矢量函数时,意义变得不明确了,它和前面的几个“X度的X度”都不一样,实际上它有这样的定义:

梯度、散度和旋度                        (15)

为了验证式(14)还是要对计算“旋度的旋度”,但以后可以直接利用该式。还是做(7)式那样的处理,即令

梯度、散度和旋度                                

梯度、散度和旋度                                    

                              

                              

于是

梯度、散度和旋度               (16)

而令

梯度、散度和旋度                                     

梯度、散度和旋度             (17)

两式相减有

梯度、散度和旋度               (18)

类似地有

梯度、散度和旋度                                    

梯度、散度和旋度                                    

由于所关心的空间内是无源的,所以式(13)变成

梯度、散度和旋度                             (19)

这个方程很重要,称为三维波动方程,这也从理论上揭示了电磁波的存在。它的各分量展开后比较复杂,实际上我们无法绘制出一个向四面八方传播的波的振动图像,但好在可以画出一维和二维的波,从而了解波的性质。有些事物我们无法在现实世界中呈现,或绘制出图形,但是数学上却可以计算且有确切的物理意义,比如高于三维的空间,不得不感叹数学的神奇,感叹我们生活的世界的神奇。

 

VI.几个矢量恒等式:

前面已经介绍了一个矢量恒等式,还有其他几个重要的恒等式。由于三种“度”是三种不同微分算法,虽然有些场合可以把▽当做一个普通的矢量来处理,但并不总是正确的,这一点需要引起注意。

梯度、散度和旋度

 

梯度、散度和旋度

 

梯度、散度和旋度

 

这里“×”乘的优先级高于“·”乘对于普通三个不共面的矢量ABC则有A·B×C=C·A×B=B·C×A。得到的结果是令三个矢量共起点,以三个矢量的模为棱构成的六面体的体积或它的负值。但是对于▽算子,则一般

   梯度、散度和旋度                                

但是一般有

梯度、散度和旋度                                

实际上上面的矢量恒等式就是上式的扩展

梯度、散度和旋度

梯度、散度和旋度

上两式相减有

梯度、散度和旋度

记忆上式的方法是记住下标的顺序是xyzyzxzxy

 

梯度、散度和旋度

 

这个等式相对容易证明,但前提是要在直角坐标下。

梯度、散度和旋度

2018-12-23 20:26:04 weixin_41923961 阅读数 915

梯度和散度概念

首先回顾一下梯度和散度的概念。这里给出梯度和散度的公式:
对于u = u(x,y,z),
那么u的梯度就为:这里写图片描述,梯度操作的是函数,得到的是偏导数作为各分量构成一个向量。
而散度则为
这里写图片描述

参考:

http://www.zhihu.com/question/24591127

Nonlocal Variational Model for Pansharpening Image Fusion

在了解了梯度和散度的的概念之后,我们将其应用到图像中去。首先,我们经常用到的是求图像的梯度,也就是使用差分法分别在图像的x,y方向求得图像的梯度分量,然后利用sqrt(x.^2 + y.^2)就生成了图像的梯度图了。那按照散度的公式,如果我们将x,y方向的梯度分量当做2个向量场,即把x当做P(x,y,z),y当做Q(x,y,z),那么继续对x,y方向的梯度分量求梯度就可以得到散度公式中的2个加数,得到的正是下面所说的zx_x和zy_y。对于某点来说,也就是得到了该点的流动速率。

下面详细一些说明:

1. 什么是散度
1.1 散度的定义
散度是作用在向量场上的一个算子。
用三维空间来举例,向量场就是在空间每一点处都对应一个特殊的三维向量的向量函数:
F(x,y,z)=(v_1(x,y,z),v_2(x,y,z),v_3(x,y,z))^T。比如海洋里,各点在单位时间单位体积中水的流量就是一个三维场,这个场也称为通量。

散度算子定义为:
div(F)=frac{partial v_1}{partial x}+frac{partial v_2}{partial y}+frac{partial v_3}{partial z}
它是一个标量函数(场),也就是说,在定义空间中每一点的散度是一个值。

1.2 散度的物理意义
用水流来解释,散度的物理意义可以叙述为:

  • 如果一点的散度大于0,那么在这一点有一个水龙头不断往外冒水(称为源点)
  • 如果一点的散度小于0,那么在这一点有一个下水道,总有一些水只进不出(称为汇点)
  • 如果一点的散度等于0,那么请放心,在这个点周围的小区域里,单位时间进来多少水就出去多少水。


1.3 数学推导
咱们来看看在一点A(x,y,z)的附近到底发生了什么。以这一点为中心,用一个边长分别为dx,dy,dz的平行于坐标轴的长方体盒子包围它,来详细分析长方体各表面水向外跑了多少。先看盒子在x方向上的两个面:
第一个面是一个面积为dydz的长方形,它的中心坐标是(x+frac{dx}{2},y,z),这一点的通量是F(x+frac{dx}{2},y,z),用Taylor展开式可以近似为:(v_1,v_2,v_3)^T+frac{dx}{2}(frac{partial v_1}{partial x}, frac{partial v_2}{partial y}, frac{partial v_3}{partial z})^T,又因为这一长方形的外法线方向是(1,0,0),因此这一面在单位时间向外的流量就是二者相乘再乘以面积,由于法线的特殊形式,y、z分量自动消失了:
V_{x+}=(v_1+frac{dx}{2}frac{partial v_1}{partial x})dydz
同理,在x负半轴上的那个面单位时间向外的流量是:
V_{x-}=(-v_1+frac{dx}{2}frac{partial v_1}{partial x})dydz
因此单位时间在x方向上的总的向外的流量是:
V_x=V_{x+}+V_{x-}=frac{partial v_1}{dx}dxdydz
把三个坐标轴向外的流量加在一起,我们就得到了围绕点A,体积为dxdydz的长方体单位时间向外的流量是V=left( frac{partial v_1}{partial x}+frac{partial v_2}{partial y}+frac{partial v_3}{partial z} right) dxdydz=div(F)dxdydz

从上面的推导立即可以得出结论:

  • 在一个区域D中,单位时间向外的总流量就是把每一个小区域向外的流量加起来(内部相互抵消,最终只有区域边界上的值得以展现):

V(D)=int_{D}div(F)dxdydz

  • 平均到一个点上,单位时间向外流量的密度就是frac{div(F)dxdydz}{dxdydz}=div(F)
  • 一个区域无论多复杂,只要不包含源点和汇点,其上散度的积分一定为0


1.4 散度与扩散
假设在空间中有一个浓度场rho (x,y,z),则在每一点都有一个浓度上升最快的方向,我们称其为梯度nabla rho =left( frac{partial rho}{partial x}, frac{partial rho}{partial y}, frac{partial rho}{partial z} right),它是一个向量场。浓度差带来的后果就是空间物质会发生运动,从高浓度向低浓度运动,其结果就是浓度中和,趋向平衡。这种运动可以用一个偏微分方程描述:
frac{partial rho }{partial t}=-div(K cdot -nabla rho)=div(K cdot nabla rho)
这个方程被形象地称为扩散方程,来源于物理上的连续性方程。等式右边一定是负散度,因为若一个点散度为正,说明它浓度大,扩散应该减少它的值,然而因为浓度对应的运动场是梯度的负值(高浓度向低浓度流动),因此恰好内外两个负号抵消了,最终右端就出现了貌似不科学的正散度结果,不要被迷惑住。散度算子内部的量K可以是标量,也可以是矩阵,用于调节浓度差与扩散方向之间的关系。

为了更加直观地理解,咱先略去多余因子,这样方程就变成了:
frac{partial rho }{partial t}=div(nabla rho)=rho_{xx}+rho_{yy}+rho_{zz}=Delta rho
等式右边被称为Laplace算子,一般用一个正三角来简写,你可以用二阶导数来理解它。在一小段时间间隔上,这个方程又可以离散化为:
rho^{(t+1)}=rho^{(t)} + dt cdot div(nablarho^{(t)})=rho^{(t)} + dt cdot Delta rho ^{(t)}
直接含义就是:在每个小时间段内,如果一个点的二阶导数大于0,则把它的浓度增加一些,如果一个点二阶导数小于0,则把它的浓度降低一些。因为二阶导数大于0的点往往是下凹的点,是局部极小值,因此增加它可以让局部浓度变平滑;类似地,二阶导数小于0的点往往是上凸点,是局部极大值,要减少它才能更平滑。

当时间趋向于无穷大时,方程达到稳定,左端为0,那么我们就得到稳定值满足的条件:整个区域上散度为0。也可以理解为最终消灭了所有的源点和汇点,场变得光滑了。 

2. 散度在图像去噪中的应用
在图像领域散度算子主要用在去噪中。假设一幅图像为I(x,y),它的梯度算子nabla I=(frac{partial I}{partial x}, frac{partial I}{partial y})^T是一个二维场,那么我们立即可以用散度算子构造一个扩散方程:
frac{partial I}{partial t}=div(nabla I)=I_{xx}+I_{yy}
把这个扩散方程作用于图像就可以去噪了,上面已经解释了它的作用过程是比较图像上的每个点,如果一个点值比周围点低,就增加它,如果比周围点高,就减少它,实质就是平滑图像。但是由于它是各向同性的均匀扩散方程,导致图像上所有细节均匀模糊,去噪效果很糟糕。

Perona和Malik在90年代初发现,由于图像边缘往往处在梯度值较大的点处,如果扩散方程在梯度值较大的区域减速扩散,在梯度值较小的区域加速扩散,则可以在着重去噪的同时保护图像有用细节。他们修改后的扩散方程就是有名的P-M方程:
frac{partial I}{partial t}=div(g(|nabla I|)cdot nabla I)approx c_1 I_{xi xi }+c_2I_{eta eta }

其中函数g是一个递减函数,保证随图像梯度模值增大函数值递减,起到只在图像平滑区域(小梯度点)猛烈扩散的作用。同时,这个方程还可以变形为在图像局部沿边缘方向xi和跨边缘方向eta上的两个一维扩散之和,好的算法能保证在沿着边缘方向扩散地多,跨边缘扩散地少,也就是保证c_2" src="http://zhihu.com/equation?tex=c_1%3Ec_2" eeimg="1" >,起到在去噪的同时保护边缘的作用。散度形式和方向导数形式的扩散方程是随后P-M方程改进的两个主要方向。

基于扩散方程的去噪方法的优点主要有:

  1. 结合微分几何和物理方程,比较高大上;
  2. 可以控制图像局部区域的扩散特性,对图像的控制力强;
  3. 易于推广到三维和更高维以及流形(比如地球表面)上,方程都不用变。

缺点主要有:

  1. 速度慢,因为是迭代算法;
  2. 扩散会导致边缘发生一定程度地移位;
  3. 理论难于往深发展。

 

代码:

% 生成7×7整数型的矩阵
z = randi(7,7);
[zx,zy] = gradient(z);
div = divergence(zx,zy);

[zx_x,zx_y] = gradient(zx); 
[zy_x,zy_y] = gradient(zy);
% divergence(zx,zy) =zx_x + zy_y
res = zx_x + zy_y - divergence(zx,zy);
function [imx,imy,imnorm] = my_gradient(im)
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
% % 该函数用来求图像的梯度
% % 输入:
% %     im : 输入图像
% % 输出:
% %     imx :  图像x方向的梯度
% %     imy : 图像y方向的梯度
% %     imxy : 图像梯度的幅值
% % 
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
imx = [im(:,end,:) - im(:, 1,:),-diff(im,1,2)];
imy = [im(end,:,:) - im(1, :,:);-diff(im,1,1)];
imnorm = sqrt(imx.^2 + imy.^2);

end
2018-07-04 17:01:23 baishuo8 阅读数 732

散度

散度的运算对象是一个范围内的向量,运算结果是一个标量,表征的是这个向量场的发散程度。

  • 散度 > 0, 说明向量场向外发散,类似山顶涌泉。
  • 散度 = 0, 说明向量场进出相抵,类似游泳池。
  • 散度 < 0, 说明向量场向内聚积,类似宇宙黑洞。

图像散度

我们知道图像的梯度是个向量场,因此我们可以计算图像梯度的散度。并且这个散度通常用在去噪中。梯度散度的作用过程其实就是比较图像上的每个点,如果一个值比周边高,那就减少它,如果比周边低,那就拉高它,总之就是起到了平滑图像的作用.

图像梯度算子

I=(Ix,Iy)T
,用梯度算子构建其扩散方程为
It=div(I)=Ixx+Iyy


Ref

2015-12-09 15:42:53 baimafujinji 阅读数 10042

欢迎关注我的博客专栏“图像处理中的数学原理详解

全文目录请见 图像处理中的数学原理详解(总纲)

http://blog.csdn.net/baimafujinji/article/details/48467225



1.3.2 内积与外积


因为cos(π/2)=0。当然,这也是众多教科书上介绍向量内积最开始时常常用到的一种定义方式。但必须明确,这种表示方式仅仅是一种非常狭隘的定义。如果从这个定义出发来介绍向量内积,其实是本末倒置的。因为对于高维向量而言,夹角的意义是不明确的。例如,在三维坐标空间中,再引入一维时间坐标,形成一个四维空间,那么时间向量与空间向量的夹角该如何解释呢?所以读者务必明确,首先应该是给出如本小节最开始时给出的内积定义,然后才能由此给出二维或三维空间下的夹角定义。在此基础上,我们来证明余弦定律。



若根据a·b = |a||b|cosθ这个定义,因为0<=cosθ<=1,显然柯西-施瓦茨不等式是成立的。但是这样的证明方式同样又犯了本末倒置的错误。柯西-施瓦茨不等式并没有限定向量的维度,换言之它对于任意维度的向量都是成立的,这时夹角的定义是不明确的。正确的思路同样应该从本小节最开始的定义出发来证明柯西-施瓦茨不等式,因为存在这样一个不等式关系,然后我们才会想到内积与向量模的乘积之间存在一个介于0和1之间的系数,然后我们才用cosθ来表述这个系数,于是才会得到b = |a||b|cosθ这个表达式。下面就来证明柯西-施瓦茨不等式。


证明:

与内积类似,向量a,b的外积也可以狭义地定义为


我的“图像处理中的数学原理”专栏中之系列文章已经以《图像处理中的数学修炼》为名结集出版(清华大学出版社)。该书详细介绍图像处理中的数学原理,为你打开一道通往图像世界的数学之门,详细内容及目录请见 http://blog.csdn.net/baimafujinji/article/details/48467225



2019-10-21 22:08:21 Cody_ 阅读数 113

图像梯度

这里是引用https://blog.csdn.net/saltriver/article/details/78987096

梯度: 运算的对像是标量,运算出来的结果会是向量
图像梯度最主要的目的就是将不清晰的边缘变得清晰一些吧。
那么,这个梯度(或者说灰度值的变化率)的原理就是:
我们先考虑下x方向,选取某个像素,假设其像素值是100,沿x方向的相邻像素分别是90,90,90,则根据上面的计算其x方向梯度分别是10,0,0。这里只取变化率的绝对值,表明变化的大小即可
在这里插入图片描述
我们看到,100和90之间亮度相差10,并不是很明显,与一大群90的连续灰度值在一起,轮廓必然是模糊的。我们注意到,如果相邻像素灰度值有变化,那么梯度就有值,如果相邻像素灰度值没有变化,那么梯度就为0。如果我们把梯度值与对应的像素相加,那么灰度值没有变化的,像素值不变,而有梯度值的,灰度值变大了。

在这里插入图片描述
我们看到,相加后的新图像,原图像像素点100与90亮度只相差10,现在是110与90,亮度相差20了,对比度显然增强了,尤其是图像中物体的轮廓和边缘,与背景大大加强了区别,这就是用梯度来增强图像的原理。

举例子来讲会比较简单,如果现在的纯量场用一座山来表示,纯量值越大的地方越高,反之则越低.经过梯度这个运操作数的运算以后,会在这座山的每一个点上都算出一个向量,这个向量会指向每个点最陡的那个方向,而向量的大小则代表了这个最陡的方向到底有多陡.

图像散度

这里是引用https://www.zhihu.com/question/24074028/answer/26657334

散度: 运算的对像是向量,运算出来的结果会是纯量

散度的作用对像是向量场,如果现在我们考虑任何一个点(或者说这个点的周围极小的一块区域),在这个点上,向量场的发散程度,如果是正的,代表这些向量场是往外散出的.如果是负的,代表这些向量场是往内集中的.

一样,举例子:因为散度的作用对像是向量场,所以就不能用上面所讲的山来想象,这次要想象一个大广场里挤了很多人,如果每个人都在到处走动,是不是可以把每个人的行动都看成是一个向量,假如现在某人放了一个屁,周围的人(可能包含他自己)都想要赶快闪远一点,就会发现,在这块区域的人都往这小块区域以外的方向移动.对啦…这就是散度(你也可以想说是闪远一点的闪度…冷…),大家如果散得越快,散得人越多,这个散度算出来就就越大.

图像旋度

旋度: 运算的对像是向量,运算出来的结果会是向量

旋度的作用对象也是向量场,这次直接用上面的例子来讲:如果现在散开的众人都是直直的往那个屁的反方向散开,这时候你看到这些人的动线是不是就是一个标准的幅射状??不过事实上,每个人在闻到屁的时候是不会确切的知道屁到底是来自哪个方向的.而可能会走错方向,试过之后才发现不对劲,越找越臭.这时候你看到众人的走向不见得就是一个幅射状(大家都径向移动),而可能有一些切向移动的成份在(以屁发点为中心来看)旋度对应的就是这些切向移动的情况,相对来讲,散度对应的其实就是径向移动的情况.而一个屁,虽然可能会像上述的造成一些切向的移动,但理论上来讲,并不会使散开的众人较趋向于顺时钟转,或逆时钟转.在这种情况,顺时钟转的情况可以看作与逆时钟转的情况抵消,因此,在这情况下,旋度仍然是零.也就是说,一个屁能造成散度,而不会造成旋度…而甚么时候是有旋度的呢??如果这时候音乐一放,大家开始围着中间的营火手拉手跳起土风舞(当然是要绕着营火转的那种啦)这时候就会有旋度没有散度啦.(刚刚一直放屁的那位跑出去找厕所的除外)以上这三个,有一点一定要记得的.不论是梯度,散度,旋度,都是一种local的量(纯量,向量),所考虑的都是任何一点(其周围极接近,极小的小范围)的情况.以上举的例子因为要容易了解,所以都是针对二度空间向量为例,而且都是很大的东西,但广场是一个点,营火晚会也是一个点,纳须弥于芥子,这就请自行想象吧

没有更多推荐了,返回首页