如何计算梯度';方向';在matlab中沿x轴和y轴的图像(不是大小)?

如何计算梯度';方向';在matlab中沿x轴和y轴的图像(不是大小)?,matlab,Matlab,我使用了imgradientxy();但它给出的值是-600,我需要的角度值在-180到180之间。分别在两个方向上 值分别为0和90。渐变是通过imgradientxy()在X和Y方向上计算的,您可以从其名称推断出 但是,点中的梯度定义如下: 您可以执行[Gx,Gy]=imgradientxy(img) 这意味着你的总梯度(不是“方向梯度”,即Gx和Gy)是一个向量。点i中的(Gxi,Gyi)向量 计算向量的模数和角度是一个简单的代数问题: 模数、震级、欧几里德范数或您更倾向于称之为: m=

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

值分别为0和90。渐变是通过
imgradientxy()
在X和Y方向上计算的,您可以从其名称推断出

但是,点中的梯度定义如下:

您可以执行
[Gx,Gy]=imgradientxy(img)

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

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

模数、震级、欧几里德范数或您更倾向于称之为:

m=norm([Gx,Gy]);
角度:

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

值分别为0和90。渐变是通过
imgradientxy()
在X和Y方向上计算的,您可以从其名称推断出

但是,点中的梯度定义如下:

您可以执行
[Gx,Gy]=imgradientxy(img)

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

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

模数、震级、欧几里德范数或您更倾向于称之为:

m=norm([Gx,Gy]);
角度:

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

或者你可以使用
imgradient
,它可以直接输出幅度和方向。@nkjt哦,是的,的确如此!但是使用
imgradientxy
OP可以学到一些东西,或者你可以使用
imgradientxy
直接输出幅度和方向。@nkjt是的,的确如此!但是使用
imgradientxy
OP可以学到一些XD