我使用了imgradientxy();但是它给出了像-600.i这样的值,需要角度范围在-180到180之间.两个方向分别.
值为0和90.梯度在X和Y方向上计算,imgradientxy()您可以从其名称推断出来.
但是,某点的渐变定义为:
你可以做到[Gx,Gy]=imgradientxy(img).
这意味着你的总梯度(不是"方向梯度",这是Gx和Gy是)是一个向量.该(Gxi,Gyi)矢量在点i.
计算向量的模数和角度是一个简单的代数事物:
模数,幅度,欧几里德范数或者你想要称之为:
m=norm([Gx,Gy]);
Run Code Online (Sandbox Code Playgroud)
和角度:
theta=atan(Gy/Gx); %radians
theta=atand(Gy/Gx); %degrees
Run Code Online (Sandbox Code Playgroud)