我试图在视频帧中找到对象的边界框。我假设当前的边界框检测在原始帧中找到对象,而我想在帧差异中提取边界框。在下图中,我从框架中减去背景,结果是右图。
由于帧差中的大部分像素都将为零,我假设为此进行的边界框检测在计算上应该很便宜。
最佳答案
您没有使用特定语言进行标记,所以我将给出一个伪代码答案,并提供指向要使用的 OpenCV 函数的指针:
如果您想确保将靠近在一起的不相交区域分配给同一个框,请填补空白:
morphologyEx
使用MORPH_CLOSE
操作,并使用小内核。连通分量分析:
connectedComponents
.这会生成一个整数图像,其中每个“对象”的所有像素都绘制有相同的值(标签)。找出每个标签的 x 和 y 坐标的最小值和最大值。您可以使用
connectedComponentsWithStats
将此步骤与 OpenCV 中的上一步结合起来,并获取stats
的CC_STAT_LEFT
、CC_STAT_TOP
、CC_STAT_WIDTH
和CC_STAT_HEIGHT
列输出。
是的,这很便宜。
关于algorithm - 视频图像差异中的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53103772/