algorithm - 视频图像差异中的边界框

标签 algorithm opencv image-processing bounding-box

我试图在视频帧中找到对象的边界框。我假设当前的边界框检测在原始帧中找到对象,而我想在帧差异中提取边界框。在下图中,我从框架中减去背景,结果是右图。

enter image description here

由于帧差中的大部分像素都将为零,我假设为此进行的边界框检测在计算上应该很便宜。

最佳答案

您没有使用特定语言进行标记,所以我将给出一个伪代码答案,并提供指向要使用的 OpenCV 函数的指针:

  1. 如果您想确保将靠近在一起的不相交区域分配给同一个框,请填补空白:morphologyEx使用 MORPH_CLOSE 操作,并使用小内核。

  2. 连通分量分析:connectedComponents .这会生成一个整数图像,其中每个“对象”的所有像素都绘制有相同的值(标签)。

  3. 找出每个标签的 x 和 y 坐标的最小值和最大值。您可以使用 connectedComponentsWithStats 将此步骤与 OpenCV 中的上一步结合起来,并获取 statsCC_STAT_LEFTCC_STAT_TOPCC_STAT_WIDTHCC_STAT_HEIGHT 列输出。

是的,这很便宜。

关于algorithm - 视频图像差异中的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53103772/

相关文章:

arrays - 在伪代码中使用 'temp'

c++ - opencv-4.1.2 构建后要清理哪些文件和文件夹?

iPhone操作系统: Strategies for high density image work

algorithm - 多次翻转整行或整列后得到最少的硬币反面数

java - 如何正确使用 Mod 10^9+7

c++ - C++ 中的顺序统计树

android - 获得的位图是透明的,但是当设置为 ImageView 时变得不透明

python - Python cv2.imread返回 'NoneType'对象没有属性 'shape'

python - SIFT输入到ANN

Python:去除图像中水平黑线的快速方法