soliddream
2008-08-02, 16:10
书上举例灰度图像:
a =
0 0 0 100 100
0 0 0 100 100
0 0 0 100 100
100 100 100 100 100
100 100 100 100 100
列梯度
fx =
0 0 300 300 0
0 0 300 300 0
0 0 200 200 0
0 0 0 100 0
0 0 0 0 0
行梯度
fy =
0 0 0 0 0
0 0 0 0 0
300 300 200 100 0
300 300 200 100 0
0 0 0 0 0
不知道matlab里面有没有求梯度的函数?我按梯度的英文gradient在帮助中搜索,并按照如下语法使用
>> [Fx , Fy] = gradient(a,1/6)
Fx =
0 0 300.0000 300.0000 0
0 0 300.0000 300.0000 0
0 0 300.0000 300.0000 0
0 0 0 0 0
0 0 0 0 0
Fy =
0 0 0 0 0
0 0 0 0 0
300.0000 300.0000 300.0000 0 0
300.0000 300.0000 300.0000 0 0
0 0 0 0 0
得到的结果不一样啊
ps.书上面解释如下:函数row_gradient和column_gradient分别是估计行梯度分量和列梯度分量的领域函数,注意采用3*3的梯度算子(?)
a =
0 0 0 100 100
0 0 0 100 100
0 0 0 100 100
100 100 100 100 100
100 100 100 100 100
列梯度
fx =
0 0 300 300 0
0 0 300 300 0
0 0 200 200 0
0 0 0 100 0
0 0 0 0 0
行梯度
fy =
0 0 0 0 0
0 0 0 0 0
300 300 200 100 0
300 300 200 100 0
0 0 0 0 0
不知道matlab里面有没有求梯度的函数?我按梯度的英文gradient在帮助中搜索,并按照如下语法使用
>> [Fx , Fy] = gradient(a,1/6)
Fx =
0 0 300.0000 300.0000 0
0 0 300.0000 300.0000 0
0 0 300.0000 300.0000 0
0 0 0 0 0
0 0 0 0 0
Fy =
0 0 0 0 0
0 0 0 0 0
300.0000 300.0000 300.0000 0 0
300.0000 300.0000 300.0000 0 0
0 0 0 0 0
得到的结果不一样啊
ps.书上面解释如下:函数row_gradient和column_gradient分别是估计行梯度分量和列梯度分量的领域函数,注意采用3*3的梯度算子(?)