来自图像的近似多边形(地图)

时间:2015-12-01 15:53:52

标签: python numpy image-processing scipy scikit-image

所以我有这张地图: original map

我已经完成了一些过滤,现在我有了以下图片: filtered map

最后,我想找到图像中每个多边形的坐标,但是使用find_contours函数并没有给我带来好的结果,如下图所示。

在左侧,您可以看到找到的所有轮廓(多边形)(每种颜色一种颜色),而在右侧,它是它找到的多边形的一个示例(这显然是错误的)。 contours

拥有黑白图像,如何找到其中每个多边形的坐标?

1 个答案:

答案 0 :(得分:0)

因此,当我下载图像时,我得到了一种非常不相交的图像。所以我所做的就是扩张它。

img_inverted = np.invert(img)

然后我做的是用白色将白线反转​​为黑色,并将区域变为白色

img_inverted_labeled = measure.label(img_inverted)
n_lbls = np.unique(img_inverted_labeled)[1:]

获得倒置图像后,将其标记为易于处理。

pols = []
for i in n_lbls:
  img_part = (img_inverted_labeled == i)
  pols.append(measure.find_contours(img_part, level=0)[0])

现在附加每个部分的多边形。

{{1}}

希望这有帮助。