【发布时间】:2014-11-21 20:42:34
【问题描述】:
我正在使用 EmguCV 并尝试在图像中查找多边形。以下是有关该问题的一些事实:
1) 多边形是不规则形状的,但边总是在两个角度之一。
2) 多边形的侧面通常有需要填充的间隙。
3) 如果一个多边形包含在另一个多边形中,我想忽略它。
考虑这张图片:
我想找到以红色突出显示的多边形,省略以绿色突出显示的多边形,并在此处以蓝色显示的间隙建立连接:
我已经使用 HoughLinesBinary 取得了一些成功,然后将最近的线段端点相互连接以弥合间隙以构建完整的多边形,但是当涉及多个多边形时这不起作用,因为它会尝试绘制线如果它们碰巧彼此靠近,则在多边形之间。
有人有什么想法吗?
【问题讨论】:
-
为什么应该以这种方式添加最低的蓝线而不是直角的 2 条蓝线?总而言之,您可能想使用“格式塔心理学”的结果(google it)。
-
如果将最低的蓝线变成直角的两条线,实际上会更准确。我不认为这是可行的,因为图像的那个区域是模糊的,但如果可能的话,那就太好了。
-
这应该都是关于将现有元素/线分组到对象(距离/连续性等是决定qn元素属于哪个对象的因素)。以及如何填补对象中的空白。格式塔心理学研究涵盖了这两个主题,但可能仍然是悬而未决的问题:)
-
我对图像处理编码还很陌生,仍然在为 HoughLines 方法的参数含义而苦恼……我绝对不够先进,无法开始将实验心理学原理应用于我的代码.
-
所以你希望你的代码像人类一样填补空白,但你想通过简单的方法来实现?尝试简单的启发式(距离)将边缘段聚集到对象,但不要期望这对每个输入都有效!
标签: opencv polygon detection emgucv