二值图像的边界跟踪(Boundary tracing,也称 轮廓跟踪即contour tracing)可以被认为是一种识别数字区域边界像素的图像分割技术。边界跟踪是分析区域的第一步操作。
算法
边界跟踪的算法有:
- Square跟踪算法
- Moore邻域跟踪算法
- 径向扫描 (radical sweep)
- Theo Pavlidis算法
- 一种使用向量几何的泛化的算法:
- 一种分割区域为开、闭子区域的算法:
Square 跟踪算法
Square跟踪算法简单但有效。它的行为完全基于格子是白格还是黑格(假设白格是形状的一部分)。首先,从左上到右上逐行扫描。进入第一个白格后,算法的核心部分就开始了。它主要包括两个规则:
- 如果在白格,左转
- 如果在黑格,右转
需要记录进入当前格的过程,这样才能定义左和右方向。
public void GetBoundary(byte[,] image)
{
for (int j = 0; j new Point(p.y, -p.x);
private Point GoRight(Point p) => new Point(-p.y, p.x);
参见
- 寻路
*
*
*
- 最佳化問題
参考资料
评论 (0)