0
我使用了imgradientxy();但是它給出了像-600.i這樣的值,需要角度範圍在-180到180之間。如何計算matlab中沿x和y軸的圖像的梯度'方向'(而不是幅度)?
我使用了imgradientxy();但是它給出了像-600.i這樣的值,需要角度範圍在-180到180之間。如何計算matlab中沿x和y軸的圖像的梯度'方向'(而不是幅度)?
值爲0和90.您可以從其名稱推斷出梯度在X和Y方向上按imgradientxy()
計算。
然而,在一個點上的梯度定義爲:
,你可以做[Gx,Gy]=imgradientxy(img)
。
這意味着你的總梯度(不是「方向梯度」,這是Gx和Gy是什麼)是一個向量。點i
中的(Gxi,Gyi)
向量。
要計算向量的模量和角度是一個簡單的代數的事情:
模量,大小,歐幾里得範或者無論你preffer叫它是:
m=norm([Gx,Gy]);
和角度:
theta=atan(Gy/Gx); %radians
theta=atand(Gy/Gx); %degrees
非常感謝:) – Aadi
非常好的答案! –
或者你可以使用'imgradient'直接輸出幅度和方向。 – nkjt