我输入的图像如下:
我喜欢以一种方式对图像进行分割,以获得仅包含水平垂直线的近似多边形。
我的第一种方法是霍夫分割,但我只能创建矩形对象。这对第二张图片不起作用。
然后我尝试使用决策树:对于每个图像,我训练了一个决策树,其中所有像素的输入x
和y
位置以及黑/白分类。然后我只使用了这棵树的第一个n
层。使用这个新树,我对所有像素进行了预测。有时这很好用,但有时它没有。特别是树的深度因图片而异......
也许有人知道如何做到这一点?或者是否已有针对此用例的算法?
非常感谢
此致
凯文
答案 0 :(得分:2)
使用形态"细化" 后跟"侵蚀" 水平或垂直移除,我得到了相当合理的结果导向功能。我只是在 ImageMagick 的命令行中进行此操作,但如果您愿意,可以使用Python绑定。
所以,横向特征:
convert poly.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:3x1 im1h.png
垂直功能:
convert poly.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:1x3 im1v.png
然后,使用另一张图片:
convert poly2.png -threshold 50% -morphology Thinning:-1 Skeleton -morphology erode rectangle:1x3 result.png