algorithm - 视频中图像差异中的边界框
问题描述
我正在尝试在视频帧中找到对象的边界框。我假设当前的边界框检测在原始帧中找到对象,而我想在 Frame Difference 中提取边界框。在下图中,我从框架中减去了背景,结果是正确的图像。
由于帧差中的大多数像素将为零,因此我假设对此的边界框检测在计算上应该是便宜的。
解决方案
您没有使用特定语言进行标记,因此我将给出一个伪代码答案,并带有指向要使用的 OpenCV 函数的指针:
如果您想确保将靠近的不相交区域分配给同一个框,请填补空白:
morphologyEx
使用MORPH_CLOSE
操作并使用小内核。连通分量分析:
connectedComponents
. 这会产生一个整数图像,其中每个“对象”的所有像素都涂有相同的值(标签)。查找每个标签的 x 和 y 坐标的最小值和最大值。您可以将此步骤与 OpenCV 中的前一个步骤结合使用,并
connectedComponentsWithStats
获取输出的CC_STAT_LEFT
、CC_STAT_TOP
和列。CC_STAT_WIDTH
CC_STAT_HEIGHT
stats
是的,这很便宜。
推荐阅读
- java - 如何提高具有嵌套循环的算法的时间复杂度?
- reactjs - React useEffect 无限循环从 api 获取数据
- python - 我可以在 pytorch 中创建上三角张量吗?
- reactjs - React 上传 SVG 文件并创建组件
- javascript - 使用 Vanilla JavaScript 表单“必需”验证
- python-3.x - 如何在 webkit2gtk 中进行标题更改调用?
- apache-spark - 从 databrick 在 adls gen 1 中写入 tsv 文件时行分隔符更改
- eclipse - 如何找出mvn文件夹的位置?
- java - sqlite 查询的结果集没有 rs.next()
- typescript - TS2322:类型'{ [x:字符串]:字符串;}' 不可分配给类型 'Record '。打字稿通用