我正在尝试在视频帧中找到对象的边界框。我假设当前的边界框检测在原始帧中找到对象,而我想在“帧差异”中提取边界框。在下图中,我从帧中减去了背景,结果是正确的图像。
由于帧差中的大多数像素将为零,因此我假设对此进行边界框检测应该在计算上便宜。
答案 0 :(得分:1)
您没有使用特定语言进行标记,因此我将给出一个伪代码答案,其中包含指向要使用的OpenCV函数的指针:
如果要确保彼此靠近的不相交区域被填充到同一框,请使用MORPH_CLOSE
操作并使用小内核来填充间隙。
连接的组件分析:morphologyEx
。这样会生成一个整数图像,其中每个“对象”的所有像素都用相同的值(标签)绘制。
找到每个标签的x和y坐标的最小值和最大值。您可以使用connectedComponents
将此步骤与OpenCV中的上一步合并,并获得{{1}的CC_STAT_LEFT
,CC_STAT_TOP
,CC_STAT_WIDTH
和CC_STAT_HEIGHT
列}}输出。
是的,这很便宜。