边缘检测
一阶算子—Robert、Sobel、Prewitt、
二阶算子—laplacian
综合性算子—Log、Canny
方法比较
Hough变换
作用:形状检测(直线、圆等)
对于图像上的直线:
y
=
u
x
+
v
y=ux+v
y=ux+v
在参数空间下:
v
=
x
u
+
y
v=xu+y
v=xu+y
图像空间下的每一个点对应参数空间下的一条直线,参数空间的一个点,对应直线空间的一条直线
Hough变换步骤:
- 初始化参数空间( u , v u, v u,v),置为 0 0 0
- 对图像上的每一个点( x i x_i xi, y i y_i yi),绘制参数空间直线,对每个经过的位置计数( + 1 +1 +1)
- 统计( u , v u,v u,v)空间最大值位置,对应图像空间的直线
注意:对于直线
x
=
a
x=a
x=a,斜率
+
∞
+\infty
+∞,这样会导致参数空间无法表示,因为选择另外一种直线表示法——垂点表示法,方程为:
x
c
o
s
θ
+
y
s
i
n
θ
=
ρ
xcos\theta+ysin\theta=\rho
xcosθ+ysinθ=ρ,其中
ρ
\rho
ρ表示原点到直线的距离,
θ
\theta
θ表示原点到直线的垂线与
x
x
x轴的夹角,即
(
ρ
,
θ
)
(\rho,\theta)
(ρ,θ)代表垂足的极坐标,方程的推导如下:
垂线的方向向量为:
l
⃗
=
(
ρ
c
o
s
θ
,
ρ
s
i
n
θ
)
\vec l=(\rho cos\theta,\rho sin\theta)
l=(ρcosθ,ρsinθ),直线任意一点对应的方向向量
a
⃗
=
(
x
,
y
)
\vec a=(x,y)
a=(x,y),则直线的方向向量
n
⃗
=
a
⃗
−
l
⃗
\vec n=\vec a-\vec l
n=a−l,可知
n
⃗
⋅
l
⃗
=
0
\vec n·\vec l=0
n⋅l=0,可推出:
x
c
o
s
θ
+
y
s
i
n
θ
=
ρ
xcos\theta+ysin\theta=\rho
xcosθ+ysinθ=ρ