图像梯度计算
- 水平方向梯度:
Gx(x,y)=H(x+1,y)−H(x−1,y)
G
x
(
x
,
y
)
=
H
(
x
+
1
,
y
)
−
H
(
x
−
1
,
y
)
- 垂直方向梯度:
Gy(x,y)=H(x,y+1)−H(x,y−1)
G
y
(
x
,
y
)
=
H
(
x
,
y
+
1
)
−
H
(
x
,
y
−
1
)
- 像素的梯度:
G(x,y)=Gx(x,y)2+Gy(x,y)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
G
(
x
,
y
)
=
G
x
(
x
,
y
)
2
+
G
y
(
x
,
y
)
2
- 梯度方向:
α(x,y)=tan−1Gy(x,y)Gx(x,y)
α
(
x
,
y
)
=
t
a
n
−
1
G
y
(
x
,
y
)
G
x
(
x
,
y
)
伪代码实现:
hx = [-1,0,1]
hy = hx'
grad_x = filter(Img, hx)
grad_y = filter(Img, hy)
grad_xy = sqrt(grad_x.^2 + grad_y.^2)
theta = count_theta()