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

问题描述 投票:0回答:1

我一直在研究 opencv 正方形示例的变体来检测矩形。它对于封闭的矩形工作得很好,但我想知道我可以采取什么方法来检测有开口的矩形,即缺少角、线太短的矩形。

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

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

我认为第一步是检测哪些线是形成完整矩形的候选线,然后执行某种线外推。这看起来很有希望,但我的矩形边缘不会完美地水平或垂直放置。

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

image

opencv computer-vision shapes detection rectangles
1个回答
0
投票

也许这篇论文感兴趣? 基于加窗霍夫变换的矩形检测

基本上,对图像进行霍夫线变换。您将在 (theta, rho) 空间中与存在线条的位置相关的位置处获得最大值。值越大,线条越长/越直。也许设置一个阈值以仅获得最佳线路。然后,我们尝试寻找

的线对

1) 平行:最大值出现在相似的 theta 值处

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

3) 与另一对线正交:theta 值与其他线对的 theta 值相差 90 度

论文中还有一些更多细节,例如在滑动窗口中进行变换,然后使用错误度量来合并多个匹配。

© www.soinside.com 2019 - 2024. All rights reserved.