OpenCV视觉分析之运动分析(4)背景减除类:BackgroundSubtractorKNN的一系列set函数的使用

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

算法描述

BackgroundSubtractorKNN类有一系列的set函数,下面我们一一列举他们的名字和用法。

一系列set函数

函数setDetectShadows()

setDetectShadows() 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置是否启用阴影检测功能。这个功能对于背景减除算法来说非常重要,因为阴影可能会干扰前景物体的正确检测。

函数setDist2Threshold()

setDist2Threshold 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置距离平方阈值。这个阈值用于区分前景和背景,即当一个像素点与背景模型之间的距离平方大于此阈值时,该像素点会被视为前景。

函数setHistory()

setHistory 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置历史帧数。历史帧数决定了背景模型的更新范围,即算法用来构建背景模型的时间窗口大小。

函数setkNNSamples()

setkNNSamples 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置 K 近邻样本数量。这个参数决定了在背景建模过程中每个像素使用的近邻样本数量。

函数setNSamples()

setNSamples 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置用于背景建模的样本数量。这个参数决定了在背景建模过程中每个像素使用的近邻样本数量。

函数setShadowThreshold()

setShadowThreshold 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置阴影检测的阈值。这个阈值用于区分阴影和真正的前景物体。阴影检测是在背景减除算法中一个重要的部分,因为它能够帮助算法区分物体的阴影和实际的移动物体。

函数setShadowValue()

setShadowValue 是 cv::BackgroundSubtractorKNN 类中的一个方法,用于设置阴影在前景掩码中的值。这个值用于在检测到阴影时标记这些像素点,以便后续处理或分析时能够区分阴影和真正的前景物体

代码示例


#include <iostream>
#include <opencv2/opencv.hpp>int main( int argc, char** argv )
{// 创建一个 BackgroundSubtractorKNN 对象cv::Ptr< cv::BackgroundSubtractorKNN > pBackSub = cv::createBackgroundSubtractorKNN();// 设置参数pBackSub->setHistory( 500 );          // 设置历史帧数pBackSub->setDist2Threshold( 16 );    // 设置距离平方阈值pBackSub->setDetectShadows( true );   // 启用阴影检测pBackSub->setShadowThreshold( 0.5 );  // 设置阴影检测阈值pBackSub->setShadowValue( 0.2 );      // 设置阴影值// 获取当前的阴影值double shadowValue = pBackSub->getShadowValue();std::cout << "Current shadow value: " << shadowValue << std::endl;// 打开视频文件cv::VideoCapture capture( "input_video.mp4" );if ( !capture.isOpened() ){std::cerr << "Failed to open video file." << std::endl;return -1;}// 读取每一帧并处理cv::Mat frame, fgMask;while ( capture.read( frame ) ){// 应用背景减除pBackSub->apply( frame, fgMask );// 显示结果cv::imshow( "Frame", frame );cv::imshow( "FG Mask", fgMask );// 按 'q' 键退出if ( cv::waitKey( 30 ) == 'q' ){break;}}// 释放资源capture.release();cv::destroyAllWindows();return 0;
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF+MVVM案例实战(三)- 动态数字卡片效果实现

1、创建项目 打开 VS2022 &#xff0c;新建项目 Wpf_Examples&#xff0c;创建各层级文件夹&#xff0c;安装 CommunityToolkit.Mvvm 和 Microsoft.Extensions.DependencyInjectio NuGet包,完成MVVM框架搭建。搭建完成后项目层次如下图所示&#xff1a; 这里如何实现 MVVM 框…

【AI学习】Mamba学习(十二):深入理解S4模型

#1024程序员节&#xff5c;征文# HiPPO的学习暂告一段落&#xff0c;按照“HiPPO->S4->Mamba 演化历程”&#xff0c;接着学习S4。 S4对应的论文&#xff1a;《Efficiently Modeling Long Sequences with Structured State Spaces》 文章链接&#xff1a;https://ar5iv…

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: X-Former: Unifying Contr…

《在1688的数字海洋中,如何用API网罗一家店铺的所有商品?》

想象一下&#xff0c;你是一位船长&#xff0c;航行在1688这个电商的数字海洋上。你的任务是探索一家神秘的店铺岛屿&#xff0c;并且用你的API魔法网&#xff0c;网罗岛上所有的商品宝藏。不用担心&#xff0c;即使你不是海贼王&#xff0c;有了代码的力量&#xff0c;你也能成…

uniapp:sqlite最详细教程,小白可直接粘贴复制

新建uniapp项目,需要4个页面, loading 启动页:打开数据库,判断数据表是否存在,表内是否有数据,创建数据表的逻辑。 register 注册页:数据表已存在,但是没有数据,需要进入该页面注册第一条数据 index 首页:展示数据列表内的数据,可修改默认,添加新数据 edit 编辑:编…

vuetify学习笔记(v-app和v-responsive)

我最近在学习vuetify3&#xff0c;我以前是用element plus和taiwind css。vuetify的一个好处是&#xff0c;它不仅是一个向element plus一样提供好用的组件库&#xff0c;而且还提供了向taiwind css一样的原子类&#xff0c;可以通过类名方便的定义组建的样式。以前element plu…

ReactOS系统中搜索给定长度的空间地址区间中的二叉树

搜索给定长度的空间地址区间 //搜索给定长度的空间地址区间 MmFindGap MmFindGapTopDown PVOID NTAPI MmFindGap(PMADDRESS_SPACE AddressSpace,ULONG_PTR Length,ULONG_PTR Granularity,BOOLEAN TopDown );PMADDRESS_SPACE AddressSpace,//该进程用户空间 ULONG_PTR Length,…

数据结构:堆的应用

堆排序 假定有一组数据极多的数&#xff0c;让我们进行排序&#xff0c;那我们很容易想到一种经典的排序方法&#xff0c;冒泡排序&#xff0c;我们对冒泡排序的时间复杂度进行分析&#xff1a; 显然&#xff0c;冒泡排序的时间复杂度是O&#xff08;n^2&#xff09;,当数据量…

Trimble三维激光扫描开启工业元宇宙的安全“智造”之路-沪敖3D

以下文章来源于天宝Trimble Field Systems &#xff0c;作者小甜宝 工业制造是一个固有危险性的行业&#xff0c;人身伤害、物理损坏和长时间的维修都可能导致项目停滞。因此&#xff0c;确保安全不仅仅对工作人员重要&#xff0c;更是保证项目顺利进行关键。 在自动化程度提…

Kafka Tool(Offset Explorer)在windows下配置访问kerberos认证Kafka

Author : Spinach | GHB Link : http://blog.csdn.net/bocai8058文章目录 前言准备配置文件配置软件参数及启动 前言 Offset Explorer&#xff08;以前称为Kafka Tool&#xff09;是一个用于管理和使用Apache Kafka集群的图形用户界面&#xff08;GUI&#xff09;应用程序。…

ubuntu查看系统版本命令

查看系统版本指令 在 Ubuntu 操作系统中&#xff0c;您可以使用多个命令来查看系统版本。以下是一些常用的命令&#xff1a; lsb_release -a 这个命令会显示详细的 Ubuntu 版本信息&#xff0c;包括发行版名称、版本号、代号等。lsb_release -acat /etc/os-release 这个命令会显…

海外盲盒系统搭建:海外市场带来的全新机遇

我国盲盒在海外迅速火爆&#xff0c;今年以来销量一直呈现高增长态势&#xff0c;各类盲盒在海外受到消费者疯抢&#xff0c;供不应求&#xff0c;海外盲盒市场发展前景巨大&#xff01; 在开拓海外市场中&#xff0c;我国盲盒先后在泰国、越南等国家取得了显著的成绩&#xf…

小米15、SU7 Ultra、新平板,粮厂「科技春晚」定了

继高通发布骁龙 8 至尊版两天后&#xff0c;给一众网友脖子盼僵的小米 15&#xff0c;终于是迎来了官宣定档&#xff01; 就在昨天&#xff0c;小米官方宣布「小米 15 系列暨小米澎湃 OS 2 新品发布会」将于 10 月 29 日举行。 而这场发布会不光会有年度新机小米 15 系、全新澎…

量子纠错--shor‘s 码

定理1 (量子纠错的条件) C是一组量子编码&#xff0c;P是映射到C上的投影算子。假设是一个算子元素描述的量子操作&#xff0c;那么基于量子编码C&#xff0c;存在一个能对抗描述的噪声的纠错操作R的充要条件是 对某个复元素厄米矩阵成立。 将算子元素称为导致的错误。如果这样…

【C++】类和对象(附题)

目录 一、类的定义 1.1.类定义格式 1.2.访问限定符 1.3.类域 二、实例化 2.1.实例化概念 2.2.对象大小 三、this指针 附加题&#xff1a;&#xff08;增进对this指针的理解&#xff09; 1.下面程序编译运行结果是&#xff08;&#xff09; 2.下面程序编译运行结果是&…

昆虫种类识别数据集昆虫物种分类数据集YOLO格式VOC格式 目标检测 机器视觉数据集

一、数据集概述 数据集名称&#xff1a;10类昆虫图像数据集 数据集包含了多种农作物中常见的昆虫种类&#xff0c;包括军虫、豆蓟象、红蜘蛛、水稻瘿蚊、水稻卷叶蛾、水稻叶蝉、水稻水蚤、小麦薄翅薄翅蔗蝇、白背飞虱和黄稻螟。 1.1可能应用的领域 农业害虫监测与防控&#x…

基于 Python 的机器学习模型部署到 Flask Web 应用:从训练到部署的完整指南

目录 引言 技术栈 步骤一&#xff1a;数据预处理 步骤二&#xff1a;训练机器学习模型 步骤三&#xff1a;创建 Flask Web 应用 步骤四&#xff1a;测试 Web 应用 步骤五&#xff1a;模型的保存与加载 保存模型 加载模型并在 Flask 中使用 步骤六&#xff1a;Web 应用…

超越OpenAI GPT-4o,Yi-Lightning指南:中国AI大模型新巅峰

Yi-Lightning 是零一万物公司最新发布的旗舰模型&#xff0c;它在国际权威盲测榜单 LMSYS 上超越了硅谷知名 OpenAI GPT-4o-2024-05-13、Anthropic Claude 3.5 Sonnet&#xff0c;排名世界第六&#xff0c;中国第一&#xff0c;这标志着中国大模型首次实现超越 OpenAI GPT-4o 的…

node.js下载安装以及环境配置超详细教程【Windows版本】

node安装以及环境变量配置 Step1&#xff1a;选择版本进行安装Step2&#xff1a;安装Node.jsStep3&#xff1a;环境配置Step4&#xff1a;检查node.js是否成功安装Step5&#xff1a;npm修改下载镜像 Step1&#xff1a;选择版本进行安装 Node.js 安装包及源码下载地址为 Node.…

从0到1搭建大数据平台v1.0

文章目录 一、 文看懂大数据的技术生态1 大数据2 大数据核心技术2.1 HDFS分布式文件系统2.2 MapReduce计算引擎2.3 Hive数据仓库2.4 快一点吧 Spark/Flink2.5 Oozie / Azkaban任务调度2.6 yarn资源管理器2.7 数据采集 Sqoop / Flume / DataX/Kafka 3 从0到1搭建大数据平台 二、…