边界跟踪

二值图像的边界跟踪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)

  • 还没有评论,来抢沙发吧。