当前位置: 首页 > news >正文

OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorGSOC

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::bgsegm::BackgroundSubtractorGSOC 是 OpenCV 中用于背景分割(背景建模)的一个类,它是基于 GMM(Gaussian Mixture Model)改进的算法。GSOC 指的是 Google Summer of Code 项目,其中这个背景减除算法被开发并集成到了 OpenCV 的 bgsegm 模块中。

主要特点

  • 改进的 GMM 算法:基于 Z.Zivkovic 的自适应高斯混合模型,并在此基础上进行了优化。
  • 颜色和梯度信息:不仅使用颜色信息,还利用了图像梯度来提高前景检测的准确性。
  • 适应性强:能够很好地适应光照变化和其他环境变化。
  • 参数可调:允许用户通过调整多个参数来优化背景建模过程。

构造函数

与大多数现代 OpenCV 背景减除器一样,不直接使用构造函数创建 BackgroundSubtractorGSOC 实例,而是通过工厂方法 cv::bgsegm::createBackgroundSubtractorGSOC() 来创建实例。

Ptr<BackgroundSubtractorGSOC> cv::bgsegm::createBackgroundSubtractorGSOC
(int mc = 3,bool nSamples = 20,float replaceRate = 0.003f,float propagationRate = 0.01f,bool hitsThreshold = 32,float alpha = 0.01f,float beta = 0.0022f,float blinkingSupressionDecay = 0.1f,float blinkingSupressionMultiplier = 0.1f,float noiseRemovalThresholdFacBG = 0.0004f,float noiseRemovalThresholdFacFG = 0.0008f
);

参数:

  • mc: 每个像素的最大成分数量,默认值为 3。
  • nSamples: 需要初始化的样本数,默认值为 20。
  • replaceRate: 新样本替换旧样本的概率,默认值为 0.003。
  • propagationRate: 成分传播的概率,默认值为 0.01。
  • hitsThreshold: 前景判断的命中阈值,默认值为 32。
  • alpha: 学习率,默认值为 0.01。
  • beta: 背景更新速率,默认值为 0.0022。
  • blinkingSupressionDecay: 闪烁抑制衰减因子,默认值为 0.1。
  • blinkingSupressionMultiplier: 闪烁抑制乘数,默认值为 0.1。
  • noiseRemovalThresholdFacBG: 背景噪声移除阈值因子,默认值为 0.0004。
  • noiseRemovalThresholdFacFG: 前景噪声移除阈值因子,默认值为 0.0008。

主要函数

apply函数

函数原型
void apply
(InputArray image, OutputArray fgmask, double learningRate=-1
);
参数
  • image: 输入当前帧。
  • fgmask: 输出前景掩码图像。
  • learningRate: 学习率,决定了新获取的信息对模型的影响速度。默认值 -1 表示自动选择学习率。

getBackgroundImage函数

函数原型
void getBackgroundImage
(OutputArray backgroundImage
) const;
参数
  • backgroundImage: 输出背景图像。

代码示例

#include <opencv2/bgsegm.hpp>
#include <opencv2/opencv.hpp>int main()
{cv::VideoCapture cap( 0 );  // 打开摄像头if ( !cap.isOpened() ){std::cerr << "无法打开摄像头!" << std::endl;return -1;}// 创建 GSOC 背景减除器cv::Ptr< cv::bgsegm::BackgroundSubtractorGSOC > bgSubtractor = cv::bgsegm::createBackgroundSubtractorGSOC();cv::Mat frame, fgMask;while ( true ){cap >> frame;  // 获取新帧if ( frame.empty() )break;  // 到达视频结尾bgSubtractor->apply( frame, fgMask );  // 应用背景减除器cv::imshow( "Original Frame", frame );cv::imshow( "Foreground Mask", fgMask );if ( cv::waitKey( 30 ) >= 0 )break;  // 按任意键退出}return 0;
}

运行结果

白色的是运动的物体
在这里插入图片描述

相关文章:

OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorGSOC

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::bgsegm::BackgroundSubtractorGSOC 是 OpenCV 中用于背景分割&#xff08;背景建模&#xff09;的一个类&#xff0c;它是基于 GMM&#xff…...

AI恶魔之眼使用说明书

AI恶魔之眼使用说明书 产品简介 1.1 产品介绍 AI恶魔之眼是一款具备动态视觉效果与仿生眼睛模拟功能的智能显示产品&#xff0c;可实现以下特性&#xff1a; 真实人眼模拟&#xff1a;支持虹膜样式变换、眨眼动画、瞳孔缩放等动态特效&#xff0c;仿真度高自定义内容上传&am…...

PBR材质-Unity/Blender/UE

目录 前言&#xff1a; 一、Unity&#xff1a; 二、Blender&#xff1a; 三、UE&#xff1a; 四、全家福&#xff1a; 五、后记&#xff1a; 前言&#xff1a; PBR流程作为表达物理效果的经典方式&#xff0c;很值得一学。纹理贴图使用的是上一期的Textures | cgbookcas…...

C++复习

线程库(类&#xff09; 在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如Windows和Linux下各有自己的接口&#xff0c;这使得代码的可移植性比较差。C11中最重要的特性就是对线程进行了支持&#xff0c;使得C在并行编程时不需要依赖第三方…...

如何使用docker配置ros-noetic环境并使用rviz,gazebo

参考链接&#xff1a;【Ubuntu】Docker中配置ROS并可视化Rviz及Gazebo_docker ros-CSDN博客 前言&#xff1a; 其实这个东西是相当必要的&#xff0c;因为我们有时候需要在一台电脑上跑好几个项目&#xff0c;每个项目都有不同的依赖&#xff0c;这些依赖冲突搞得人头皮发麻&…...

计算机网络中相比于RIP,路由器动态路由协议OSPF有什么优势?

好的!以下是关于路由信息协议(RIP,Routing Information Protocol)的技术原理详解,以及其与OSPF(Open Shortest Path First)的对比分析。内容分为技术原理、对比优势和不足两部分。 一、RIP技术原理深度解析 1. 基本概念 协议类型:RIP属于距离向量路由协议(Distance-V…...

相似命令对比

awk 命令用法表格 场景命令示例说明示例输入文件内容 (input.txt)输出结果1. 基础字段提取awk -F: {print $1} /etc/passwd按分隔符提取第1列&#xff08;如用户名&#xff09;。root:x:0:0:root:/root:/bin/bashroot2. 多字段组合输出awk -F: {print $1, $3, $7} /etc/passwd…...

Vuerouter 的底层实现原理

文章目录 前言&#x1f9e9; Vue Router 底层实现核心原理&#x1f9e0; 执行流程图&#xff08;简化版&#xff09;&#x1f50d; 核心模块源码原理&#xff08;简要&#xff09;① 路由注册与匹配&#xff08;createRouterMatcher&#xff09;② 历史模式管理器&#xff08;c…...

按拼音首字母进行排序组成新的数组(vue)

数据按首字母相同的组成新的数组&#xff0c;使用​​拼音&#xff08;Pinyin&#xff09;转换​​ 比如想要的效果&#xff1a; 下载 npm install pinyin代码&#xff1a; import pinyin from "pinyin"; let studentAllList [{onLine: true,points: undefined…...

在IPv6头部中,Next Header字段

在IPv6头部中&#xff0c;Next Header字段 在IPv6头部中&#xff0c;Next Header字段是一个8位的字段&#xff0c;它的作用是指示下一个头部扩展的类型或者最终的传输层协议类型。这个字段的值决定了数据包中紧随IPv6头部之后的头部扩展的类型&#xff0c;或者是直接指向传输层…...

vue项目部署后部分子页面刷新后403

经过我的仔细分析&#xff1b;终于找到了是刷新后路径后面自动拼接了 / &#xff1b;如 66.66.66.66/aPage 刷新后变成了 66.66.66.66/aPage/ 导致403 方法一&#xff1a; 修改路由为hash模式 // router/index.jsimport { createRouter, createWebHistory, createWebHashHist…...

C# NX二次开发:曲线和点位相关UFUN函数详解

大家好&#xff0c;今天要介绍查询曲线上点位和返回沿着曲线偏移一定距离的UFUN函数。 &#xff08;1&#xff09;UF_MODL_ask_curve_points&#xff1a;这个函数的定义为按照给定条件查询曲线上的点位。 Defined in: uf_modl_curves.h Overview Returns an array of 3D …...

服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复

服务器存储数据恢复环境&故障&#xff1a; 一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统&#xff0c;存放虚拟机文件&#xff0c;上层一共分了4个卷。 磁盘故障导致存储不可用&#xff0c;且设备已经过保。 服务器存储数据恢复过程…...

【2019 CWE/SANS 25 大编程错误清单】12越界写入

案例1&#xff1a; void tonly_aw21036_led_drv_pwm_init(tonly_gpio_pin_t gpio_pin, uint8_t pwm) {uint8_t pin gpio_pin - AW21036_GPIO_PIN_START;if (pin < AW21036_LED_MAX_CHANNEL){aw21036_ctx.pwm[pin] pwm; /* 有效通道号: 0-35 */}else{TONLY_LED_LOG_E(&qu…...

redis bitmap数据类型调研

一、bitmap是什么&#xff1f; redis原文&#xff1a; Bitmaps are not an actual data type, but a set of bit-oriented operations defined on the String type . This means that bitmaps can be used with string commands, and most importantly with SET and GET. 翻…...

[Windows] Ghost Downloader v3.5.9 开源多线程下载工具

[Windows] Ghost Downloader 链接&#xff1a;https://pan.xunlei.com/s/VOPejV3veb6v-im-wVmMkXkhA1?pwdpzwk# Ghost Downloader 是一款专为Windows平台设计的多线程下载工具&#xff0c;完全由Python语言开发。它以其高效的多线程下载技术和断点续传功能而著称&#xff0c…...

互联网大厂Java求职面试:AI集成与云原生架构设计

互联网大厂Java求职面试&#xff1a;AI集成与云原生架构设计 面试场景&#xff1a;技术总监与程序员郑薪苦的对话 技术总监&#xff1a;郑薪苦&#xff0c;我们今天来聊聊你在AI集成场景中的经验。你有没有尝试过将Spring AI与大模型结合&#xff1f; 郑薪苦&#xff1a;有啊…...

gitignore的相关用法

gitignore .gitignore 是 git 用于管理需要忽略追踪的文件。.gitignore 一般用于远程仓库多人协作的场景&#xff0c;最常见的情况是&#xff0c;使用 MacOS 系统的程序员要在 .gitignore 中添加 .DS_Store 防止将其推送至仓库中。或在开发代码时&#xff0c;将调试文件忽略&a…...

前端取经路——工程化渡劫:八戒的构建之道

大家好,我是老十三,一名前端开发工程师。前端工程化就像八戒的钉耙,看似简单却能降妖除魔。在本文中,我将带你探索前端工程化的九大难题,从模块化组织到CI/CD流程,从代码规范到自动化测试,揭示这些工具背后的核心原理。无论你是初学者还是资深工程师,这些构建之道都能帮…...

Android 数据持久化之 Room 数据库存储

一、简介 Room 是 Google 推出的 Android 持久层框架,建立在 SQLite 之上,提供了一个抽象层,简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。 Room 主要由以下三个组件组成: Entity(实体):定义封装实际数据的实体类,每个实体类对应数据库中的一个…...

Selenium Web自动化测试学习笔记(一)

自动化测试 技术手段模拟人工&#xff0c;执行重复性任务&#xff0c;准确率100%&#xff0c;高于人工 selenium 可通过浏览器驱动控制浏览器&#xff0c;通过元素定位模拟人工&#xff0c;实现web自动化&#xff0c;没有焦点&#xff08;把浏览器放在最小化依然可以&#x…...

一个项目的周测试的文档(Billing Service 测试文档)

目录 Pending Pool 各项功能测试... 2 1. Assign 分配功能。测试结果&#xff1a; ok. 2 2. Reset 功能。 测试结果&#xff1a; OK. 3 3. Discard 功能。测试结果&#xff1a; 提示discard成功&#xff0c;但是historical job没有找到记录... 3 4. E…...

二分查找习题

一、二叉搜索树与双向链表&#xff08;剑指 Offer JZ36 &#xff09; 解题思路要点 - 利用中序遍历特性&#xff1a;二叉搜索树的中序遍历结果是有序序列&#xff0c;这是将二叉搜索树转化为有序双向链表的关键。通过中序遍历可以按从小到大的顺序访问节点&#xff0c;满足…...

JumpServer批量添加资产

环境说明&#xff1a;我的环境是H3C网络设备环境 一、在linux系统环境下通过Python脚本获取交换机信息&#xff0c;IP地址和设备名称一一对应&#xff0c;脚本如下&#xff1a; cat get_device-sysname.py import re from netmiko import ConnectHandler from concurrent.fut…...

使用 Python 与 Java 实现接入 AI 大模型的 MCP 协议:原理与实战

一、什么是 MCP 协议&#xff1f; MCP&#xff08;Model Context Protocol&#xff09; 是一种专为远程控制和管理 AI 大模型而设计的通信协议。它允许客户端通过网络向服务器发送请求&#xff0c;以执行诸如模型推理、状态查询、参数更新等操作&#xff0c;并接收相应的结果。…...

Nginx核心原理以及案例分析(AI)

一、Nginx核心原理分析 1. ‌事件驱动与非阻塞模型‌ ‌Epoll异步机制‌&#xff1a;基于Linux的epoll模型实现异步非阻塞I/O处理&#xff0c;单线程可高效管理数万并发连接&#xff0c;避免传统select模型的轮询性能瓶颈。‌多进程架构‌&#xff1a;采用Master-Worker模式&…...

ChromeDriverManager的具体用法

ChromeDriverManager 是 webdriver_manager 库的一部分&#xff0c;它用于自动管理 ChromeDriver 的下载和更新。使用 ChromeDriverManager 可以避免手动下载 ChromeDriver 并匹配系统中安装的 Chrome 浏览器版本。以下是 ChromeDriverManager 的基本用法&#xff1a; 步骤 1…...

Linux:认识基础IO

1.理解"⽂件" 1.1狭义理解 ⽂件在磁盘⾥ 磁盘是永久性存储介质&#xff0c;因此⽂件在磁盘上的存储是永久性的 磁盘是外设&#xff08;即是输出设备也是输⼊设备&#xff09; 磁盘上的⽂件 本质是对⽂件的所有操作&#xff0c;都是对外设的输⼊和输出 简称 IO 1.2广…...

SimpleMindMap:一个支持AI的思维导图软件

SimpleMindMap&#xff08;思绪思维导图&#xff09;是一款开源、跨平台且功能丰富的思维导图工具&#xff0c;支持 Web 端及多平台客户端&#xff08;Windows、macOS、Linux&#xff09;。 SimpleMindMap 提供的主要功能如下&#xff1a; 插件化设计&#xff0c;除了核心功能…...

数据库故障排查指南:MySQL 解决常见问题解决

数据库是现代 IT 系统的核心引擎,承载着企业最重要的数据资产。数据库的稳定、高效运行直接关系到业务的生死存亡。然而,由于软硬件、配置、应用访问等多种因素的影响,数据库故障难以完全避免。当故障发生时,能够迅速定位、分析并解决问题,同时确保数据安全不受影响,是每…...

2025年特种作业操作证考试题库及答案(登高架设作业)

一、单选题 202.带电跨越架羊角撑杆高度&#xff08;  &#xff09;m。 A.1 B.1.1 C.1.2 答案:B 203.跨越架拉线地锚埋深必须按&#xff08;  &#xff09;及架体设计要求进行。 A.现场情况决定 B.土质情况 C.地锚设计分坑图 答案:C 204.单排脚手架洞口处&#…...

Open CASCADE学习|ApplicationFramework 框架使用指南

在现代 CAD&#xff08;计算机辅助设计&#xff09;应用开发中&#xff0c;构建一个高效、可扩展且用户友好的应用程序框架是至关重要的。Open CASCADE&#xff08;简称 OCC&#xff09;提供了一个功能强大的 ApplicationFramework&#xff08;应用程序框架&#xff09;&#x…...

hadoop中的序列化和反序列化(3)

3. Java的序列化 Java提供了内置的序列化机制&#xff0c;通过java.io.Serializable接口实现。 3.1 如何实现Java序列化 让类实现Serializable接口。 使用ObjectOutputStream进行序列化。 使用ObjectInputStream进行反序列化。 示例代码 序列化 java 复制 import jav…...

PostgreSQL给新用户授权select角色

✅ 切换到你的数据库并以超级用户登录&#xff08;例如 postgres&#xff09;&#xff1a; admin#localhost: ~$ psql -U postgres -d lily✅ 创建登录的账号机密吗 lily> CREATE USER readonly_user WITH PASSWORD xxxxxxxxxxx; ✅ 确认你授予了这个表的读取权限&#xf…...

MySQL 8.0 OCP(1Z0-908)英文题库(1-10)

目录 第1题题目解析正确答案 第2题题目解析正确答案 第3题题目解析正确答案 第4题题目解析正确答案 第5题题目解析正确答案 第6题题目解析正确答案 第7题题目解析正确答案 第8题题目解析正确答案 第9题题目解析正确答案 第10题题目解析正确答案&#xff1a; 第1题 Your MySQL …...

南京市出台工作方案深化“智改数转网联”,物联网集成商从“困局”到“蓝海”!

为落实《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划&#xff08;2025-2027年&#xff09;》&#xff0c;南京市近日出台“工作方案”&#xff0c;部署五大行动17项重点任务&#xff0c;进一步深化全市制造业智能化改造、数字化转型、网络化联接&#xff08;以…...

系统思考:教育焦虑恶性循环分析

今天和团队的小伙伴一起拆解了一个父母教育焦虑与报班行为之间的系统环路图&#xff0c;报班越多 ➡ 孩子自由时间越少 ➡ 情绪调节力下降 ➡ 学习效率更低 ➡ 成绩不理想 ➡ 家长更焦虑 ➡ 继续加码报班…… 一圈一圈&#xff0c;像是陷入了“焦虑的恶性循环”。 这也是我一直…...

(已完结)完美解决C盘拓展卷是灰色的无法扩容的问题以及如何正确地在WINDOS上从一个盘扩容到C盘

众所周知&#xff0c;window系统在“计算机”管理中自带了一个磁盘管理系统 但是在使用过程中会出现各种各样无法扩容的毛病。 第一&#xff1a;首先排查&#xff0c;大多数人在扩容之前忽视了一点就是&#xff0c;我们现代的很多新机器都是默认开启BitLocker加密的&#xff…...

优选算法系列(8.多源BFS)

简介&#xff1a; 01 矩阵&#xff08;medium&#xff09;&#xff1a; 题目链接&#xff1a;542. 01 矩阵 - 力扣&#xff08;LeetCode&#xff09; 算法&#xff1a; 对于求的最终结果&#xff0c;我们有两种方式&#xff1a; 第⼀种方式&#xff1a;从每⼀个 1 开始&#…...

迈向AI辅助数据分析代码生成的透明性与知识共享

李升伟 摘译 生成式人工智能&#xff08;AI&#xff09;及尤其大型语言模型&#xff08;LLMs&#xff09;正在改变我们进行数据科学研究的方式. 最显著的例子包括科学家使用该技术与科学数据交互, 回答数据分析问题, 生成数据分析代码以及(重新)撰写科研手稿. 然而遗憾的是&am…...

autojs和冰狐智能辅助该怎么选择?

最近打算做自动化脚本&#xff0c;在autojs和冰狐智能辅助中做选择&#xff0c;不知道该怎么选。没办法只能花费大量时间仔细研究了autojs和冰狐智能辅助&#xff0c;综合考虑功能需求、开发复杂度、编程经验及项目规模等因素。以下是两者的核心对比及选择建议&#xff0c;仅供…...

小数的二进制表示

相信很多人都知道整数的二进制表示方法&#xff0c;但是小数的二进制就不一定了。 想来简单说一下整数的&#xff0c;就是不断的除以2取余数&#xff0c; 大致这样 从下往上取&#xff0c;这里42的结果就是101010 而且每个整数都有他对应的二进制数&#xff0c;但是小数转二…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十)

个人笔记整理---仅供参考 第十章项目进度管理 10.1管理基础 10.2项目进度管理过程 10.3规划进度管理 10.4定义活动 选C 10.5排列活动顺序 10.6估算活动持续时间 10.7制订进度计划 制订进度计划4个步骤&#xff08;背&#xff0c;案例可能会考&#xff01;&#xff09; 10.8控制…...

Linux内核初始化机制全解析:从pure_initcall到late_initcall

引言 Linux内核的启动过程是一个高度有序的初始化流程,涉及数百个模块和子系统的协同工作。为了确保依赖关系正确、硬件资源按需分配,内核通过一系列初始化宏(如pure_initcall、subsys_initcall、late_initcall等)将函数划分为不同的优先级,按严格顺序执行。本文将深入探…...

pcie协议复位

pcie协议复位共有4中情况&#xff1b;cold reset&#xff1b;warm reset&#xff1b;hot reset&#xff1b;function level reset&#xff1b; 分类&#xff1a; 依据spec 6.6&#xff1a; Conventional reset&#xff08;传统复位&#xff09;&#xff1a;cold&#xff0c;…...

boost笔记: Cannot open include file: ‘boost/mpl/aux_/preprocessed/plain/.hpp‘

1. 问题描述 因为一下库定义了宏and&#xff0c;导致boost的文件包含and.hpp展开成&.hpp&#xff0c;所以出现以下错误 Cannot open include file: ‘boost/mpl/aux_/preprocessed/plain/&.hpp’ 2. 解决方案 在定义宏之前包含boost文件&#xff0c;但这种方案的缺点…...

Xilinx XCKU11P-2FFVA1156I 赛灵思 FPGA AMD Kintex UltraScale+

XCKU11P-2FFVA1156I 属于 AMD Kintex UltraScale™ FPGA 家族&#xff0c;采用 TSMC 20 nm FinFET 工艺&#xff0c;兼顾高性能与功耗效率&#xff0c;提供约 653 100 个逻辑单元、2 928 个 DSP 切片、21.1 Mb Block RAM 和 22.5 Mb UltraRAM&#xff0c;可广泛应用于网络加速、…...

hadoop中的序列化和反序列化(4)

4. Hadoop的序列化 Hadoop提供了自己的序列化机制&#xff0c;用于高效地处理分布式计算中的数据传输。Hadoop的序列化机制比Java的序列化更高效&#xff0c;更适合大规模数据处理。 4.1 Hadoop序列化的特点 高效&#xff1a;Hadoop的序列化格式紧凑&#xff0c;适合大规模数…...

实现引用计数线程安全的shared_ptr

c11引入了三个智能指针&#xff0c;用来自动管理内存&#xff0c;使用智能指针可以有效地减少内存泄漏。 其中&#xff0c;shared_ptr是共享智能指针&#xff0c;可以被多次拷贝&#xff0c;拷贝时其内部的引用计数1&#xff0c;被销毁时引用计数-1&#xff0c;如果引用计数为…...

今日行情明日机会——20250507

指数今天放量上涨&#xff0c;政策层面也释放出重大利好消息~ 上证缺口已补&#xff0c;大盘股表现总体较好 深证60分钟缺口依然未补&#xff0c;等待后续走势~ 2025年5月7日涨停股主要行业方向分析 一、核心主线方向 军工&#xff08;政策催化地缘驱动&#xff09; • 涨停…...