问题标签 [background-subtraction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3723 浏览

c++ - OpenCV背景减法/码本?

我尝试了 codebook 方法,但并不真正理解 int t 在 code_book 结构中的意义。它是用于“计算每次访问”的变量,但这完全让我迷失了。算什么访问什么?通过谁?有人可以向我解释成员变量的目的吗?请尽量使用非技术术语

其次,在 ce 结构中,int t_last_update 和 int stale 成员数据的意义何在?t_last_update 应该杀死过时的条目,但什么是过时的条目?“杀了它”是什么意思?而对于 int stale,它应该计算最大负数运行?什么是负面运行,它的用途是什么?

谢谢你的帮助

PS:只是确认我需要什么:解释 int t 在 code_book 结构中的作用以及 int t_last_update 和 int _stale 在 ce 结构中的作用。

0 投票
2 回答
9610 浏览

c++ - OpenCV(C++)中的背景减法

我想实现一个背景平均方法。我在一秒钟内拍摄了 50 帧图像,其中一些帧包含我想提取为前景的闪电。这些帧是用固定的相机拍摄的,并且这些帧是作为灰度拍摄的。我想做的是:

  1. 获取背景模型
  2. 之后,将每一帧与背景模型进行比较,以确定该帧中是否有光照。

我阅读了一些关于如何使用 cvAcc() 来完成此操作的文档,但我很难理解如何做到这一点。我希望有一段代码可以指导我并链接到可以帮助我理解如何实现这一点的文档。

提前谢谢你。

0 投票
2 回答
10880 浏览

opencv - opencv背景减法

我有背景场景的图像和前面有物体的同一场景的图像。现在我想用背景减法在前景中创建对象的蒙版。两个图像都是 RGB。

我已经创建了以下代码:

我不知道我这样做是否正确?

0 投票
1 回答
5735 浏览

c++ - OpenCV findContours问题

我有以下代码执行背景减法,然后使用 findContours 在前景对象周围绘制边界。

该图像只是一个空白的白色背景,但 findContours() 正在返回具有图像 4 个边缘的轮廓。这最终成为找到的最大轮廓,否定了我在代码中的逻辑。有没有办法解决这个问题?我希望它在屏幕为空白时返回一个空向量。

http://imgur.com/a/hJCQl

http://imgur.com/a/hJCQl

另外,无论如何可以改进此代码以提高效率吗?

0 投票
1 回答
7692 浏览

c++ - OpenCV C++/Obj-C:正确的对象检测

作为某种“假日项目”,我正在玩 OpenCV 并想要检测和测量东西。

当前工作流程(早期 - 检测):

  1. 转换为灰度(cv::cvtColor)
  2. 应用自适应阈值 (cv::adaptiveThreshold)
  3. 应用精明边缘检测 (cv::Canny)
  4. 寻找轮廓 (cv::findContours)

我的结果有点糟糕,我不确定正确的方向是什么。我已经让 cvBlob 在我当前的设置(OSX 10.7.2,Xcode 4.2.1)下工作,这是一个更好的方法吗?如果是这样,我怎样才能以正确的方式实施它?

还是我需要先进行背景减法?我试过了,但后来找不到轮廓

这是我的图像: 要测量的图像

这就是我的输出,当我将轮廓画回第一张图像时: 输出

更新

我让它在我的程序中工作,我的输出看起来有点不同......</p>

0 投票
2 回答
3636 浏览

c++ - OpenCV 边缘增强

我正在执行背景减法以从以下视频中获取移动的汽车(运行平均背景建模)

我在这之后应用 findContours() 在汽车周围绘制一个多边形。

如您所见,获得的输出质量不是很好。有什么办法可以增强汽车的边缘,使其更加突出,并消除周围的外来噪音。我尝试执行形态闭合(扩张->侵蚀)来填补空白,但输出不如预期。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
437 浏览

image-processing - OPENCV 奇怪的错误

我正在使用背景减法并想显示内容。由于内存异常,代码似乎总是以某种方式中断。错误似乎在 cvCopy 函数中。想不通。

0 投票
3 回答
14426 浏览

java - OpenCV Android 背景减法

我正在开发一个机器人项目,使用 Android 手机作为主处理器和摄像头来检测运动。我从 OpenCV 获得了 Android 二进制包并正确安装。我可以使用 OpenCV 原生相机捕捉图像并将它们显示到屏幕上。不过,我在使用背景减法类时遇到了问题。我可以在构造函数中创建一个新的 BackgroundSubtractorMOG 对象,但是当我尝试运行下面的代码时,它会强制退出我从本机代码中收到错误“BackgroundSubtractorMOG 仅支持 1 通道和 3 通道 8 位图像”。我尝试将 Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA 更改为 Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGB,然后它不会强制退出,但我得到的只是黑屏。我很确定 FRAME_RGB 的 bmp 仍然为空,因为屏幕保持黑色,并且我在位图之后立即绘制的 fps 计数器(为清楚起见并作为故障排除步骤从下面发布的代码中删除)没有出现。

我查看了此函数的 OpenCV C++ 代码(此处为第 388 行),如果图像类型不是 CV_8UC1 或 CV_8UC3,则会出现图像类型错误,因此我尝试使用 java CvType.CV_8UC3 而不是 Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA capture.retrieve(),但它强制关闭,我收到“不支持输出帧格式”错误。

我猜我刚刚遇到了类型转换问题,但我一生都无法弄清楚 OpenCV 的 Android 特定图像类型与记录的常规图像类型在哪里匹配。任何帮助,将不胜感激。

变量:

我的 SurfaceView 的 run() 函数:

run() 中引用的 processFrame() 函数:

编辑:

最终工作的解决方案:

0 投票
1 回答
1356 浏览

background-subtraction - c#中的背景减法

我正在研究背景减法技术。

我开始知道使用初始化库Emgucv可以为我提供我想要的东西。我想得到一个移动物体的输出。移动的物体应该是白色的,其余的东西应该是黑色或任何静止的颜色。

我从互联网上下载了一些资料以供参考,但所有这些资料都以 .exe 或 .bat 文件的形式提供。有什么方法可以转换或查看用于获取 .bat 或 .exe 文件的代码。

0 投票
2 回答
670 浏览

image-processing - 每像素阈值

我想知道在opencv中是否有可能每个像素都有一个阈值。例如 p(x,y) 应大于 100,然后 p(x+1,y) 应大于 101。

您可以将其视为背景减法。这样背景前的一切都将保留。

我在想这样的事情。我有一个图像,然后是另一个图像。我减去它们。这意味着剩下的一切都应该高于阈值。

例如:

在此处输入图像描述

右侧是启动相机(kinect)时拍摄的图像。然后左边的图像是当前的相机馈送 - 左侧的图像。

编码 :

cvSub(深度,depthInit,差异,空);

由于没有任何变化,这应该更黑(我可以理解有一些噪音)

这可能是因为还剩下负值或其他原因吗?

提前谢谢