您的位置:首页 > 编程语言 > MATLAB

Matlab中图像梯度的计算方式

2016-03-02 15:14 363 查看
在matlab中可以使用gradient来计算一幅图像的梯度,它的计算方式是这样的:

例子:

A是这样一个3*3的矩阵:

7 5 3

1 2 3

8 5 3

​那么使用gradient(A)后会得到两个值是个对dF/dx,横向的求偏导,也就是横向的梯度,即左右的梯度;以及dF/dy,纵向偏导,纵向的梯度,也就是上下的梯度。

matlab的实现方式是:横向梯度,就是按列减,第1列的梯度是第​​2列梯度减去第一列,第2列梯度是第3列减第1列除以2。第3列,就是第3列减去第2列。

这样横向的梯度就是​:

-2 -2 -2

1 1 1

-3​ -2.5 -2

​纵向同一个道理,只是改成按行减了。

得到的应该是这样的:

​-6 -3 0

0.5​ 0 0

7 3 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: