我一直在使用opencv square样本的变体来检测矩形。它适用于封闭的矩形,但我想知道我可以采取什么方法来检测有开口的矩形,即缺角,线条太短。
我进行了一些扩张,这缩小了小间隙但不是这些较大的间隙。
我考虑使用凸包或边界矩形来生成轮廓以进行比较,但由于矩形的边缘是断开的,因此每个都将读作单独的轮廓。
我认为第一步是检测哪些线是形成完整矩形的候选线,然后执行某种线外推。这个seems promising,但我的矩形边缘不会完全水平或垂直。
我正试图检测此图像中最左边的三个矩形:
答案 0 :(得分:0)
也许这篇论文很有意思? Rectangle Detection based on a Windowed Hough Transform
基本上,采取图像的霍夫线变换。您将在(theta,rho)空间中与有线的地方相关的位置获得最大值。值越大,线越长/越直。也许做一个门槛只能得到最好的线。然后,我们试图寻找
的线对1)parallel:最大值出现在相似的theta值
2)相似的长度:最大值的值相似
3)与另一对线正交:θ值与其他对'theta值相距90度
本文还有一些细节,例如在滑动窗口中进行转换,然后使用错误指标来合并多个匹配。