求图像的梯度和散度

参考:
https://blog.youkuaiyun.com/yes1989yes/article/details/73139236
https://blog.youkuaiyun.com/u011240016/article/details/52724926
https://wenku.baidu.com/view/2754220f4531b90d6c85ec3a87c24028915f853c.html
https://www.zhihu.com/question/24074028/answer/26657334
20181128更新:在看文献的时候看到了一个公式,是在讲述二阶导和散度之间的关系,这里记下以便日后有用。△u=div(▽u)《A Nonlocal Variational Model for Pansharpening Image Fusion》
这句话纯粹是我自己的笔记,下面才是正题。

梯度和散度概念

首先回顾一下梯度和散度的概念。这里给出梯度和散度的公式:
对于u = u(x,y,z),
那么u的梯度就为:这里写图片描述,梯度操作的是函数,得到的是偏导数作为各分量构成一个向量。
而散度则为
这里写图片描述
散度操作的是向量,且结果是对向量的三个分量P,Q,R系数求偏导数的和。这里借用知乎上的回答,散度的作用对像是向量场,如果现在我们考虑任何一个点(或者说这个点的周围极小的一块区域),在这个点上,向量场的发散程度。如果是正的,代表这些向量场是往外散出的.如果是负的,代表这些向量场是往内集中的。也就说散度表明了向量的流动方向,而这个流动的程度越大,散的越快,那么对应的散度值也就越大。
另外从各自的结果可以看出:梯度是一个向量,而散度却是一个标量(值)。
**另外从散度的定义式来看,散度类似于求一阶导。**其运算法则为:
在这里插入图片描述

图像中的梯度和散度##

在了解了梯度和散度的的概念之后,我们将其应用到图像中去。首先,我们经常用到的是求图像的梯度,也就是使用差分法分别在图像的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)系统自带的divergence函数只能用于二维图像的计算,不能用于RGB这样的多通道的计算。(2)对某幅图像连续求2次梯度得到的zx_x和zy_y的和是等于散度的。换句话说div(z) = zx_x +zy_y。

% 生成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
在Matlab中绘制梯度图、图可以提供一些有趣的结果,这些结果可以帮助分析图像的特征变化情况。下面是对每种图的结果进行分析的一些常见观察点: 1. 梯度图: - 梯度图显示了图像中每个像素的颜色变化情况。较大的梯度值表示颜色变化较剧烈的区域。 - 在梯度图中,您可以观察到图像中的边缘纹理区域。边缘通常具有较大的梯度值,而平滑区域通常具有较小的梯度值。 - 梯度图还可以用于图像增强边缘检测等应用。 2. 图: - 图显示了图像中每个像素的值,即梯度向量的发情况。 - 正值表示梯度向量从该像素指向周围像素扩,负值表示梯度向量收缩。 - 图可以帮助分析图像中物体的形状轮廓。物体边缘通常具有正值,而物体内部通常具有负值。 3. 旋图: - 旋图显示了图像中每个像素的旋值,即梯度向量的旋转情况。 - 正旋值表示梯度向量在顺时针方向旋转,负旋值表示逆时针方向旋转。 - 旋图可以帮助分析图像中的涡旋流动情况。旋涡区域通常具有较大的旋值。 通过分析梯度图、图,您可以获得有关图像中颜色变化、边缘、物体形状、涡旋等特征的信息。这些信息可以用于图像处理、计算机视觉模式识别等领域的应用。同时,您还可以根据具体的图像分析目标,进一步探索这些图的特点并进行更深入的分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值