杂记(梯度,散度,旋度)// kron函数 //numpy.clip()函数// if __name__ == '__main__'

1梯度,散度,旋度

梯度:向量。函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

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

          用在图像中最常见就是用来检测图像的边缘啦,不过那时候是离散函数,所以用的是差分呐!

              ;    温度梯度的表达式

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

           


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

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

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

2.2. 散度在图像去噪中的应用

最普遍的就是锐化时使用的拉普拉斯算子,本质是将周围几个单元的灰度变化率的变化趋势区分开来,从而达到区分边缘的效果。数字图像处理里的散度不能按场论中的散度来理解,当成一种数学运算方法就行。

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

这段代码是matlab 上对上面方程的验证,以及可以看看如何求梯度、旋度。 


% 生成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);

3.kron函数(卷积)

格式 C=kron (A,B)    %A为m×n矩阵,B为p×q矩阵,则C为mp×nq矩阵。

kron即为Kronecker积,所谓Kronecker积是一种矩阵运算,其定义可以简单描述成:
X与Y的Kronecker积的结果是一个矩阵:
X11*Y   X12*Y … X1n*Y
X21*Y   X22*Y … X2n*Y
……
Xm1*Y   Xm2*Y … Xmn*Y

如实例:

 上面这个代码是一种用途,特此记下来。

3.np.clip()h函数

例如给定一个区间[0,1],则小于0的将变成0,大于1则变成1.  numpy.clip(a,a_min,a_max,a=None)

4 if __name__ == '__main__'的理解

if __name__ == '__main__' 我们简单的理解就是: 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章