MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]如何求图像的梯度 (https://www.labfans.com/bbs/showthread.php?t=4053)

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的梯度算子(?)

IPRAI_MOON 2008-09-27 12:08

回复: [求助]如何求图像的梯度
 
其实很简单的,你可以参看下matlab里面的edge函数,里面的canny就要求梯度,它里面是用一个卷积求的,求的效果蛮好的。

先是生成一个求梯度的卷积模板,然后再用imfilter函数做卷积,就可以得到你要的了


所有时间均为北京时间。现在的时间是 03:47

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.