学习多边形拟合连接边缘算法
遇到的问题
- 得到许多目标像素点,需要拟合连接起来
- 该方法需要知道目标区域的所有像素点,并且是一个已排序序列
解决思路 - 使用多边形近似连接边缘算法
a. 需要得到需要近似连接的已排序边缘序列P,找到边缘的起始点A和B
b. 指定一个阈值T,用于判断对应点是否满足设置为新顶点的条件
c. 准备两个空栈开和闭
d. 如果P的点对应与一条闭合曲线,则将A放到开中,B放在开和闭中,如果是开放曲线,则A放到开中,B放到闭中
e. 选择闭中最后一个顶点到开中最后一个顶点,计算这两个点的直线参数
f. 计算e所得到的直线到P中在该直线两个顶点间所有点的距离,选择最大距离Dmax的点Vmax
g. 如果Dmax > T,则把Vmax作为新顶点放在开栈的末尾,转到步骤e
h. 否则,从开栈中移除最后一个顶点,并把它作为闭的最后一个顶点插入
i. 如果开非空,转到步骤e
j. 否则,结束算法,闭栈的顶点就是拟合P中的点的多边形顶点
k.