介绍
背景减除,官网是这样介绍的。
背景减法(BS)是通过使用静态相机来生成前景蒙版(即,包含属于场景中的运动对象的像素的二进制图像)的通用且广泛使用的技术。
顾名思义,BS计算前景蒙版,在当前帧和背景模型之间执行减法运算,其中包含场景的静态部分,或者更一般而言,考虑到所观察场景的特征,可以视为背景的所有内容。
其实不难理解,我们建立了背景模型,那么前景就很容易分离出来了。当然,这个方法使用场景一般上是静态的背景场景。
后台建模包括两个主要步骤,后台初始化和后台更新,背景减除在OpenCV中的是cv::BackgroundSubtractor类,下面是例子:
官方例子
#include
#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
const char* params
= "{ help h | | Print usage }"
"{ input | vtest.avi | Path to a video or a sequence of image }"
"{ algo | MOG2 | Background subtraction method (KNN, MOG2) }";
int main(int argc, char* argv[])
{
CommandLineParser parser(argc, argv, params);
parser.about( "This program shows how to use background subtraction methods provided by "
" OpenCV. You can process both videos and images.\\n" );
if (parser.has("help"))
{
//print help information
parser.printMessage();
}
//create Background Subtractor objects
Ptr
截图:

简单分析
PtrpBackSub,创建背景减除的对象,然后createBackgroundSubtractorMOG2()或createBackgroundSubtractorKNN()用来选择更新背景的算法,MOG2或者KNN。然后pBackSub->apply(frame, fgMask);用来更新背景模型。
总的来说用起来是比较煎简单的。其实背景减除最简单的实现,可以直接用当前帧减去前一帧的图像作为背景,这个办法最简单粗暴。优化的话,我们就得对所有的帧差进行建模,用来得到最优的背景模型。
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
OpenCV
+关注
关注
33文章
652浏览量
45201 -
MOGPON
+关注
关注
0文章
2浏览量
5863 -
printf函数
+关注
关注
0文章
31浏览量
6326
发布评论请先 登录
相关推荐
热点推荐
Vivado设计流程分析 Vivado HLS实现OpenCV的开发流程
作者:Harvest Guo来源:Xilinx DSP Specilist 本文通过对OpenCV中图像类型和函数处理方法的介绍,通过设计实例描述在vivadoHLS中调用OpenCV
发表于 04-23 11:32
•6473次阅读
Vivado HLS实现OpenCV图像处理的设计流程与分析
本文通过对OpenCV中图像类型和函数处理方法的介绍,通过设计实例描述在vivadoHLS中调用OpenCV库函数实现图像处理的几个基本步骤
发表于 07-08 08:30
OpenCV中的BGR格式,在libyuv中对应的那个格式?OpenCV中的RGB格式呢?
OpenCV中的BGR格式,在libyuv中对应的那个格式?OpenCV中的RGB格式呢?
发表于 09-19 06:00
一种基于背景减除与三帧差分的运动目标检测算法
本文提出一种基于背景减除法和三帧差分法来进行运动目标检测的算法。首先运用Surendra 背景更新算法建立运动区域的背景模型,通过背景
发表于 06-06 16:04
•62次下载
基于OpenCV的计算机视觉技术实现
基于OpenCV的计算机视觉技术实现OpencV是用来实现计算机视觉相关技术的开放源码工作库,是计算机视觉、图像处理、模式识别、计算机图形学、信号处理、视频监控、科学可视化等
发表于 11-23 21:06
•0次下载
在Vivado中如何实现OpenCV设计
观看视频,了解OpenCV库和其在一些典型应用中的使用,以及Zynq-7000 SoC的优点和如何实现OpenCV设计。同时您还能学习到如何在设计流程中使用HLS和视频库文件。本教程将
如何实现复杂背景中的快速人脸识别技术研究
对复杂背景下的人脸图像,提出一种快速人脸检测识别方法。包括基于肤色模型和OpenCV的综合方法进行人脸检测定位,并对图像重新保存、预处理,用以克服光照因素的干扰,剔除复杂背景对人脸识别不利因素
发表于 12-06 15:36
•16次下载
复杂背景下缺陷检测将Halcon实现转为OpenCV的实例
导读 本文主要介绍一个复杂背景下缺陷检测的实例,并将Halcon实现转为OpenCV。 实例来源 实例来源于51Halcon论坛的讨论贴: https://www.51halcon.com
OpenCV中的Python实现
类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言
OpenCV Webinar 2丨如何在OpenCV中调用Tengine推理,实现开发效率翻倍
这个月,OPEN AI LAB的合作伙伴OpenCV 20岁了!值此之际,OpenCV中国团队推出系列OpenCV Webinar,在全球范围内定期邀请OpenCV专家来作...
发表于 01-26 19:48
•3次下载
如何在OpenCV中实现CUDA加速
OpenCV4.x中关于CUDA加速的内容主要有两个部分,第一部分是之前OpenCV支持的图像处理与对象检测传统算法的CUDA加速;第二部分是OpenCV4.2版本之后开始支持的针对深
基于OpenVINO+OpenCV的OCR处理流程化实现
预处理主要是基于OpenCV、场景文字检测与识别基于OpenVINO框架 + PaddleOCR模型完成。直接按图索骥即可得到最终结果。 OpenCV预处理主要是完成偏斜矫正、背景矫正等操作,然后使用场景文字检测模型+OCR识别
如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?
大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追
OpenCV中背景减除的设计实现
评论