检测OpenCV中不完整的矩形(缺角/短边)

时间:2015-11-05 22:42:28

标签: opencv shape detection rectangles vision

我一直在使用opencv square样本的变体来检测矩形。它适用于封闭的矩形,但我想知道我可以采取什么方法来检测有开口的矩形,即缺角,线条太短。

我进行了一些扩张,这缩小了小间隙但不是这些较大的间隙。

我考虑使用凸包或边界矩形来生成轮廓以进行比较,但由于矩形的边缘是断开的,因此每个都将读作单独的轮廓。

我认为第一步是检测哪些线是形成完整矩形的候选线,然后执行某种线外推。这个seems promising,但我的矩形边缘不会完全水平或垂直。

我正试图检测此图像中最左边的三个矩形:

image

1 个答案:

答案 0 :(得分:0)

也许这篇论文很有意思? Rectangle Detection based on a Windowed Hough Transform

基本上,采取图像的霍夫线变换。您将在(theta,rho)空间中与有线的地方相关的位置获得最大值。值越大,线越长/越直。也许做一个门槛只能得到最好的线。然后,我们试图寻找

的线对

1)parallel:最大值出现在相似的theta值

2)相似的长度:最大值的值相似

3)与另一对线正交:θ值与其他对'theta值相距90度

本文还有一些细节,例如在滑动窗口中进行转换,然后使用错误指标来合并多个匹配。