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

OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP

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

算法描述

cv::bgsegm::BackgroundSubtractorLSBP 是 OpenCV 中用于背景分割的一个类,它基于局部样本二进制模式(Local Sample Binary Pattern, LSBP)进行背景建模。该算法特别适用于处理光照变化、阴影以及动态背景等复杂场景。

主要特点

  • 高效性:能够在保持较高检测准确性的同时实现较快的处理速度。
  • 适应性强:能够很好地适应光照变化和其他环境变化。
  • 参数可调:允许用户通过调整多个参数来优化背景建模过程。
  • 基于纹理信息:利用了图像中的局部纹理信息(LSBP),从而提高了前景检测的鲁棒性。

构造函数

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

Ptr<BackgroundSubtractorLSBP> cv::bgsegm::createBackgroundSubtractorLSBP
(int mc = 4,int nSamples = 20,float noiseRemovalThresholdFacBG = 0.0004f,float noiseRemovalThresholdFacFG = 0.0008f,int LSBPRadius = 16,float Tlower = 2.0f,float Tupper = 32.0f,float Tinc = 1.0f,float Tdec = 0.05f,float Rscale = 10.0f,float Rincdec = 0.005f,double noiseCount = 7,double binaryThreshold = 2,bool useLAB = true
);

参数:

  • mc: 每个像素的最大成分数量,默认值为 4。
  • nSamples: 需要初始化的样本数,默认值为 20。
  • noiseRemovalThresholdFacBG: 背景噪声移除阈值因子,默认值为 0.0004。
  • noiseRemovalThresholdFacFG: 前景噪声移除阈值因子,默认值为 0.0008。
  • LSBPRadius: LSBP 算法使用的半径,默认值为 16。
  • Tlower: 下限阈值,默认值为 2.0。
  • Tupper: 上限阈值,默认值为 32.0。
  • Tinc: 阈值增加量,默认值为 1.0。
  • Tdec: 阈值减少量,默认值为 0.05。
  • Rscale: 缩放比例,默认值为 10.0。
  • Rincdec: 缩放增量/减量,默认值为 0.005。
  • noiseCount: 噪声计数,默认值为 7。
  • binaryThreshold: 二值化阈值,默认值为 2。
  • useLAB: 是否使用 LAB 颜色空间,默认值为 true。

主要函数

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;}// 创建 LSBP 背景减除器cv::Ptr< cv::bgsegm::BackgroundSubtractorLSBP > bgSubtractor = cv::bgsegm::createBackgroundSubtractorLSBP();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;
}

运行结果

在这里插入图片描述

相关文章:

  • 【数据融合实战手册·应用篇】“数字孪生+视频融合”让智慧城市拥有空间感知
  • 大语言模型主流架构解析:从 Transformer 到 GPT、BERT
  • 【JS逆向基础】前端基础-HTML与CSS
  • ‌CDGP|数据治理:探索企业数据有序与安全的解决之道
  • 开源照片管理系统PhotoPrism的容器化部署与远程管理配置
  • Python中的re库详细用法与代码解析
  • 跨浏览器自动化测试的智能生成方法
  • mission planner烧录ardupilot固件报错死机
  • 02_JVM
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月8日第72弹
  • SQLite3常用语句汇总
  • 文件包含 任意文件读取
  • 使用Jmeter进行核心API压力测试
  • 云计算的基础概论
  • 【工具推荐】Code2Prompt
  • 认识不同格式的点云数据 -PCD点云数据 文本点云数据
  • C++23 views::as_rvalue (P2446R2) 深入解析
  • Hutool中的Pair类详解
  • 【WebRTC-13】是在哪,什么时候,创建编解码器?
  • 计算机网络常识:缓存、长短连接 网络初探、URL、客户端与服务端、域名操作 tcp 三次握手 四次挥手
  • 数说母亲节|妈妈的妈妈带娃比例提升,托举效果如何?
  • 75岁亚当·费舍尔坐镇,再现80分钟马勒《第九交响曲》
  • 上海推动AI+文旅深度融合,MaaS平台和产业基地落地徐汇
  • 85后清华博士黄佐财任湖北咸宁市咸安区委副书记、代区长
  • 多人称华为手机忽现拍照模糊疑存缺陷,售后回应:主摄像头故障
  • 司法部:加快研究制定行政执法监督条例,建立完善涉企行政执法监督长效机制