c++ - 我正在尝试使用这种方法来检测移动物体。有人可以为此建议我吗?

标签 c++ opencv

想问一下用这种方法提取前景会有什么问题

使用此方法之前的条件是它在固定相机上运行,​​因此相机位置不会有任何移动。

下面是我要做的。

  1. 从相机读取一帧并将此帧设置为背景图像。这是定期进行的。
  2. 定期将随后读取的帧减去上面的背景图像。然后只会移动颜色与其他区域不同的东西 与背景图片相同。
  3. 然后通过使用灰度、二值化、阈值来隔离移动对象。
  4. 迭代以上 4 个过程。

如果我这样做,成功检测到移动物体的概率会很高吗?如果不是...你能告诉我为什么吗?

最佳答案

如果考虑场景中的光照变化(逐渐或突然),您会发现您的方法不起作用。

这些问题有更强大的解决方案。其中之一(也许是最好的)是应用于背景减除的高斯混合模型

您可以使用 BackgroundSubtractorMOG2 (GMM 的实现)在 OpenCV 库中。

关于c++ - 我正在尝试使用这种方法来检测移动物体。有人可以为此建议我吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989111/

相关文章:

matlab - Viola jones 人脸检测...如何使用 opencv haar 级联中的倾斜特征

python - 在 Python 和 C++ 中根据彩色图像计算的 pig 描述符的差异

arrays - 在python\openCV\numpy中创建图像数组

c++ - qsort 类对象列表

c++ - 如何在 Qt 中通过 root 权限以编程方式运行打印命令 lpr -p

c++ - 找不到为 R 构建 C++ 代码所需的工具

c++ - 敌人的路径跟踪(Space Shooter游戏)

c++ - CMake + 查找包或 checkout 并安装

c++ - 无法在 Linux 中使用 OpenCV 打开相机

java.lang.UnsatisfiedLinkError : dlopen failed: library "../../lib/libopencv_core.so" not found