一阶微分算子(梯度算子)
Roberts
Prewitt
Sobel
二阶微分算子(拉普拉斯算子)
Canny边缘检测
算法流程:
1、高斯滤波,平滑去噪。
2、计算每个像素的梯度和方向。
直角坐标系中梯度:
G
=
(
G
x
2
+
G
y
2
)
G=\sqrt{(G_x^2+G_y^2)}
G=(Gx2+Gy2)
梯度方向:
θ
=
a
r
c
t
a
n
(
G
y
G
x
)
\theta=arctan(\frac{G_y}{G_x})
θ=arctan(GxGy)
3、非极大值抑制,“瘦边”,将除局部最大值之外的所以梯度值抑制为0。
若当前梯度值大于沿着正负梯度方向的两个像素的梯度值,则保留该像素点为边缘点,否则该像素点被抑制。
4、双阈值检测。
非极大值抑制后剩余的像素可以更准确地表示图像中的实际边缘。但仍存在噪声(非边缘)。
设置高低阈值。若边缘像素梯度值大于高阈值,标记为强边缘像素;若边缘像素梯度值小于高阈值并且大于低阈值,标记为弱边缘像素;若边缘像素梯度值小于低阈值,则被抑制。
5、抑制孤立低阈值点。
以上被划分为强边缘的像素点已被确定为边缘。对于弱边缘像素,通过查看其8个邻域像素,只要其中一个为强边缘像素,则弱边缘点保留为真实边缘
参考文献: