图像分割:创建多边形

Kev*_*ier 7 image polygon image-segmentation python-2.7

我输入的图像如下所示:

在此输入图像描述 在此输入图像描述

我喜欢以一种方式对图像进行分割,以获得仅包含水平垂直线的近似多边形.

我的第一种方法是霍夫分割,但我只能创建矩形对象.这不适用于第二张图像.

然后我尝试使用决策树:对于每个图像,我训练了一个决策树,其中包含所有像素的输入xy位置以及黑/白分类.然后我只使用了n这棵树的第一层.使用这个新树,我对所有像素进行了预测.有时这很好用,但有时它没有.特别是树木深度因图片而异......

也许有人知道如何做到这一点?或者是否已有针对此用例的算法?

非常感谢你

问候

凯文

Mar*_*ell 2

我使用形态“细化”“侵蚀”来去除水平或垂直方向的特征,得到了相当合理的结果。我只是使用ImageMagick在命令行中执行此操作,但如果您愿意,也可以使用 Python 绑定。

因此,水平特征:

convert poly.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:3x1 im1h.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

以及垂直特征:

convert poly.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:1x3 im1v.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

并且,使用另一张图像:

convert poly2.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:1x3 result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述