Python 绘制一条连接悬挑(屋脊)的线

Python 绘制一条连接悬挑(屋脊)的线,python,opencv,image-processing,Python,Opencv,Image Processing,我希望连接图像的悬点(脊点),以在左右之间创建分隔 最终输出应该如下所示。然后我可以将它们识别为4个独立的内部轮廓 是否有方法获取悬挑(屋脊)端点的坐标,以便绘制连接它们的垂直线? 或者有更好的方法来实现这一点吗?使用类似于 你会得到开始和结束。然后根据一些参数确定要连接的段 标准 注意:(自Opencv 4以来不支持LSD)您需要的是非常定制的,可能没有通用的解决方案。我不确定你想自动检测它,或者它总是一个固定的模式 如果是固定模式 我想到的第一件事是你自动裁剪出3个垂直剖面。每个都有1

我希望连接图像的悬点(脊点),以在左右之间创建分隔

最终输出应该如下所示。然后我可以将它们识别为4个独立的内部轮廓

是否有方法获取悬挑(屋脊)端点的坐标,以便绘制连接它们的垂直线?
或者有更好的方法来实现这一点吗?

使用类似于

你会得到开始和结束。然后根据一些参数确定要连接的段 标准


注意:(自Opencv 4以来不支持LSD)

您需要的是非常定制的,可能没有通用的解决方案。我不确定你想自动检测它,或者它总是一个固定的模式

如果是固定模式


我想到的第一件事是你自动裁剪出3个垂直剖面。每个都有10像素宽,72像素高。然后检测哈里斯角点。然后针对检测到的每个角点。在角点之间画一条线。至少,将此修补程序覆盖到原始图像中。爸爸,你有它

通过改变你达到这一点的方式来解决你的问题可能更容易。你说的自动裁剪是什么意思?如何获得裁剪的准确位置?自动裁剪是指对于不同的图像,垂直线处于不同的位置,需要自动检测和裁剪。我想你正在处理一个固定的模式。所以你可以在所有图像的相同位置找到这3个脊线。当假设它是固定位置时,您只需要尝试这些值。你可以从20的水平位置试试。第一个应该在那里,我用的是opencv 4。因此,此解决方案不可能检查链接。那不是opencv。这是另一个实现。pylsd。