如何在opencv中管理countor bounding rect
我一直在用高斯状态模型测试背景减法。我正在使用opencv 2.1.0. 我可以生成场景前景的二值图像。现在我只想画画 对边界矩形进行计数以高亮显示移动的对象。我使用了cvCountourBoundingRect 以获得矩形覆盖数。我面临的问题是在多个 countour,附近某个矩形重叠。在这里,有人能建议我预防吗 矩形的重叠?在理想情况下,两个矩形不应重叠。相当 应该画一个较大的矩形,覆盖所有两个矩形如何在opencv中管理countor bounding rect,opencv,Opencv,我一直在用高斯状态模型测试背景减法。我正在使用opencv 2.1.0. 我可以生成场景前景的二值图像。现在我只想画画 对边界矩形进行计数以高亮显示移动的对象。我使用了cvCountourBoundingRect 以获得矩形覆盖数。我面临的问题是在多个 countour,附近某个矩形重叠。在这里,有人能建议我预防吗 矩形的重叠?在理想情况下,两个矩形不应重叠。相当 应该画一个较大的矩形,覆盖所有两个矩形 任何建议都是非常有用的。在OpenCV中不可能做到这一点。但实际上算法非常简单: 循环浏览所
任何建议都是非常有用的。在OpenCV中不可能做到这一点。但实际上算法非常简单:
如果你有一个函数,它检查两个矩形是否相交,一个生成一个包含两个或多个给定矩形的矩形,你只需要在列表中找到重叠的矩形并合并它们,否则我误解了你的问题吗?@Dobi你对我的问题很了解。你在这里解释的逻辑是理想逻辑。我正在寻找一种更聪明的方法来达到与你提到的逻辑相同的结果。问题是我需要进行迭代。我想如果有更好的选择。谢谢你,谢谢你的链接。我更喜欢你提到的链接中的e.James的答案。寻找重叠矩形的方法是显而易见的逻辑。这个实现的基本问题是,我需要首先存储所有countour边界rect,然后迭代nxn次以解决矩形重叠问题。我想如果有更好的方法来处理这个问题。我尝试了另一种逻辑,称为双重计数,在这种逻辑中,我拍摄了一张黑色图像,然后用-1边框大小绘制每个轮廓边界矩形,用白色填充,然后再次在该图像上查找轮廓。但不准确。当一个矩形与多个矩形重叠时,复杂性会增加。还需要注意管理此场景。我所想的就是维护两个矩形的集合。比如说,向量inrectcol和向量outrectcol。inRectColl中的每个rect都需要使用您提到的逻辑与outRectColl进行比较。当我们发现矩形与outRectColl中的任何CvRect都不重叠时,outRectColl将增长。需要对重叠的rect进行特殊处理,以决定它是被删除还是在outRectColl中创建新条目。