如何在matlab中计算沿x和y轴的图像的渐变“方向”(不是幅度)?

时间:2015-07-10 09:02:43

标签: matlab

我使用的是imgradientxy();但是它给出了像-600.i这样的值,需要角度的范围在-180到180之间。两个方向分别。

1 个答案:

答案 0 :(得分:6)

值为0和90.渐变在X和Y方向上由imgradientxy()计算,您可以从其名称推断出来。

然而,某点的渐变定义为:

enter image description here

你可以[Gx,Gy]=imgradientxy(img)

这意味着你的总梯度(不是"方向梯度",这是Gx和Gy是)是一个向量。点(Gxi,Gyi)中的i向量。

计算向量的模数和角度是一个简单的代数事物:

模数,幅度,欧几里德范数或者你想要称之为:

m=norm([Gx,Gy]);

角度:

theta=atan(Gy/Gx); %radians
theta=atand(Gy/Gx); %degrees