我正在尝试实现Edge绘图算法。我获得了图像的线条,下一步是用给定的阈值拟合线条,我的问题是给定1和0的矩阵((1部分线条)遍历所有像素并开始拟合线条。 想法是通过最小二乘线拟合方法生成最小长度的初始线段,然后通过向其添加更多像素来扩展该线段。在检测到最小长度的初始线段之后,我们应该遍历链的剩余像素并计算每个像素到当前拟合线的距离。只要像素在距当前行一定距离内,就会将像素添加到当前行。我们继续向当前线段添加像素 直到我们转弯并且线的方向改变。此时,我们输出当前线段。然后递归处理链的剩余像素以提取更多的线段。
我的问题是我不知道如何开始越过像素...如果有一个特定的方向我应该首先采取...
答案 0 :(得分:0)
我同意 flawr 。没有更多的信息,如输入图像和想要的结果示例很难回答。我猜你的某些物体的轮廓不完整,想要回归/推断2D空间的间隙。在那种情况下,我会:
获取可见轮廓线
你已经有了这个。
按方向角度对线条进行排序
如果行(i)
端点为A(i),B(i)
,则:
ang(i)=atan2(B(i).y-A(i).y,B(i).x-A(i).x)
合并行
合并所有包含以下内容的行:
缩小差距
合并后只需找到所有轮廓边缘点。这些点仅连接到单行。现在你可以在OP中应用你提出的推断,但是我会尝试用简单的线连接最近的这些点(如果连接没有穿过任何一行)。