图像轮廓跟踪原理

发布于:2021-09-25 10:08:33

在识别图象中的目标时,往往需要对目标边缘作跟踪处理,也叫轮廓跟踪。顾名思义,轮廓跟踪就是通过顺序找出边缘点来跟踪边界的。若图象是二值图象或图象中不同区域具有不同的象素值,但每个区域内的象素值是相同的,则如下算法可完成基于4连通或8连通区域的轮廓跟踪。
  步骤1:首先按从上到下,从左到右的顺序扫描图象,寻找没有标记跟踪结束记号的第一个边界起始点A0,A0是具有最小行和列值的边界点。定义一个扫描方向变量dir,该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,其初始化取值为
  (1)对4连通区域取dir=3;
  (2)对8连通区域取dir=7;
  步骤2:按逆时针方向搜索当前象素的3*3邻域,其起始搜索方向设定如下:
  (1)对4连通区域取(dir+3)mod 4;
  (2)对8连通区域,若dir为奇数取(dir+7)mod 8;若dir为偶数去(dir+6)mod 8;
  在3*3邻域中搜索到的第一个与当前像素值相同的像素便为新的边界点An,同时更新变量dir为新的方向值。
  步骤3:如果An等于第二个边界点A1且前一个边界点An-1等于第一个边界点A0,则停止搜索,结束跟踪,否则重复步骤2继续搜索。
  步骤4:由边界点A0、A1、A2、……、An-2构成的边界便为要跟踪的边界。
  上述算法是图象轮廓跟踪最基本的算法,它只能跟踪目标图象的内边界(边界包含在目标点集内),另外,它也无法处理图象的孔和洞。
  简单的轮廓提取算法描述如下:
  一个简单二值图象闭合边界的轮廓跟踪算法很简单:首先按从上到下,从左到右的顺序搜索,找到的第一个黑点一定是最左上方的边界点,记为A。它的右,右下,下,左下四个邻点中至少有一个是边界点,记为B。从开始B找起,按右,右下,下,左下,左,左上,上,右上的顺序找相邻点中的边界点C。如果C就是A点,则表明已经转了一圈,程序结束;否则从C点继续找,直到找到A为止。
  判断是不是边界点很容易:如果它的上下左右四个邻居都是黑点则不是边界点,否则是边界点。

相关推荐

最新更新

猜你喜欢