浅谈Matlab中的梯度(gradient)
梯度(gradient)是函数在改点变化最大的值,在用Matlab做图像处理中,梯度可有以下公式来计算:
[Fx,Fy]=gradient(F)
1.F是一维矩阵,有Fx=gradient(F,L),L为俩元素之间的距离。
2.F是二维矩阵,(Fx,Fy)=gradient(F,Lx,Ly),Lx,Ly表示各自方向上各点间的距离。
3.F是三维矩阵,(Fx,Fy,Fz)=gradient(F,Lx,Ly,Lz),Lx,Ly,Lz表示各自方向上各点间的距离。
这样写还是比较抽象,举一个二维矩阵的例子
>> A=[1 8 6;4 3 6;7 8 5]
A =
1 8 6
4 3 6
7 8 5
Fx =
7.0000 2.5000 -2.0000
-1.0000 1.0000 3.0000
1.0000 -1.0000 -3.0000
Fy =
3.0000 -5.0000 0
3.0000 0 -0.5000
3.0000 5.0000 -1.0000
其计算方法很简单,Fx的第一列为原矩阵第二列减去第一列,第二列等于原矩阵的第三列减去第二列,算出的结果每个元素除二,第三列为原矩阵最后两列的差值。
同理,Fy就变成行的运算。
tips:第一行/列和最后一行/列计算时不需要除二,中间的行/列除二运算。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)