Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从边缘检测图像中找到多边形顶点?_Python_Numpy_Image Processing_Signal Processing_Scikit Image - Fatal编程技术网

Python 如何从边缘检测图像中找到多边形顶点?

Python 如何从边缘检测图像中找到多边形顶点?,python,numpy,image-processing,signal-processing,scikit-image,Python,Numpy,Image Processing,Signal Processing,Scikit Image,1。问题 鉴于房屋屋顶的图像,我试图找到屋顶的轮廓。我已经标记了可用的数据(作为多边形顶点),我对其进行插值并创建了下图所示的真值图像 我使用精明的、hough线、LBP特性来训练ML模型,结果看起来不错。模型输出显示在中间,测试图像的叠加显示在右侧。 2。我需要什么。 最终的输出应该是一组多边形,我需要找到绘制这些多边形的点(参见下图中的高亮点)。因此,可以将输出设置为n条线段。其中,每条线段为2个点[(x1,y1),(x2,y2)] 3。我的想法/想法是什么 a。侵蚀、扩张、打开、关闭

1。问题

鉴于房屋屋顶的图像,我试图找到屋顶的轮廓。我已经标记了可用的数据(作为多边形顶点),我对其进行插值并创建了下图所示的真值图像

我使用精明的、hough线、LBP特性来训练ML模型,结果看起来不错。模型输出显示在中间,测试图像的叠加显示在右侧。

2。我需要什么。

最终的输出应该是一组多边形,我需要找到绘制这些多边形的点(参见下图中的高亮点)。因此,可以将输出设置为n条线段。其中,每条线段为2个点[(x1,y1),(x2,y2)]

3。我的想法/想法是什么

a。侵蚀、扩张、打开、关闭、骨骼化操作

虽然这些操作使上图中的线条更加整洁,但它们不能帮助我找到要查找的多边形顶点

我想将(许多)线与图像中的白色像素相匹配(类似于hough线)

这些线的交点将为我寻找的多边形提供顶点

我想知道是否有更标准/更好的方法来实现上述目标。

我认为这将有助于您实现目标。它将查找线段,并将它们输出到向量
[x1,y1,x2,y2]
,其中(x,y)对表示线段的起点和终点

每个顶点应靠近两条或多条线段的末端。通过每个端点并计算它们出现的次数。处理完所有点后,您可以消除任何少于2次发生的点。当然,您需要一些小的阈值来确定一个点是唯一的,因为行中的间隙有些伪代码:
dist(point1,point2)


我不确定你会如何找到这一点上的多边形,但希望这能提供一些帮助

你的问题完全不清楚。标题暗示你正在寻找一个点。你的问题意味着你在寻找一些线索。请澄清。我正在寻找线相交或(将相交)的点,因为有些线可能没有完全连接到另一条线@MarkSetchell 2个点组成一个线段,即p1到P2。您可以添加另一个图像,显示红色的第一条线,绿色的第二条线和蓝色的答案,以澄清问题?但不要删除原始图像,因为人们可能希望使用不带注释的图像进行处理。@MarkSetchell已添加@既然我已经编辑了这个问题,你能再看一下吗。我现在已经定义了整个问题,也提到了我所做的尝试。我编辑了我的回答,但它仍然只是部分答案,祝你好运