在使用OpenCV进行检测任务时,我经常遇到合并重叠边界框的问题;也就是说,基本上是找到围绕两个重叠边界框的并集的边界框。在对象检测中,当感兴趣的对象因某种原因被分成许多边界框而不是一个全包围的边界框时,这种情况经常出现。
有一些StackOverflow上的算法解决方案和有用的外部库(例如这个,这个,这个),还有OpenCV提供的
我发现上述解决方案对于我要执行的任务有点过于复杂。许多算法解决方案从数学角度解决了这个问题(更像是一种思想实验),而当矩形的数量很高时,像
欢迎评论和批评。
有一些StackOverflow上的算法解决方案和有用的外部库(例如这个,这个,这个),还有OpenCV提供的
groupRectangles
函数(以及相关问题/错误:这个,这个等)。我发现上述解决方案对于我要执行的任务有点过于复杂。许多算法解决方案从数学角度解决了这个问题(更像是一种思想实验),而当矩形的数量很高时,像
rect1 | rect2
这样的操作会变得非常缓慢(处理所有内容的时间复杂度为O(N^2)),而groupRectangles
也有一些怪癖,使其只能部分有效。因此,我想出了一个有点粗糙的解决方案,实际上效果相当不错。我想与其他需要快速解决这个常见问题的人分享如下内容。欢迎评论和批评。