我想跟随一条曲线(使用matlab或opencv)并找到它的另一端,当它被像这个例子的空白空间切割时,它被简化以说明问题: Link to image of cut curve
真实图像更像是这样:Link to real image to analyse
为了跟随曲线,我可以使用骨架并查看邻域。问题是我不知道如何有效地找到另一端。
我不认为关闭或打开操作可能会有所帮助,因为如前图所示,还有其他曲线,曲线的两个部分相距很远,因此它可能导致不同的曲线而不是两个部分。
我在考虑多项式评估,这可能是简单曲线的解决方案,但我不确定我能得到的精度。如果我使用骨架,我必须找到完全正确的像素或在合理的邻域中搜索,这将需要一些时间并且再一次,因为图像中还有其他曲线,我必须确保我会找到好的之一。
这就是我寻找现有函数的原因,该函数可以精确估计曲线的轨迹,并提供有用的输出以进一步找到曲线的第二部分。
如果这种功能不存在,我可以采用任何其他方式分析问题,如果它有用的话。
答案 0 :(得分:0)
我将开始用您提供的第一张图片进行解释,您可以实现常用的OpenCV函数,用于检测轮廓(在您的情况下为黑色区域,因为您有二进制图像),称为 cv2.findContours(),返回检测到的曲面边缘的坐标,然后您可以在空白图像中分别绘制每个检测到的轮廓,以获得所需线条的边缘。
现在进入你的第二张图片,你需要在进行上述分析时要小心,因为有许多小线条。回复我的帮助