传统图像算法 - 运动目标检测之KNN运动背景分割算法

  以下代码用OpenCV实现了视频中背景消除和提取的建模,涉及到KNN(K近邻算法),整体效果比较好,可以用来进行运动状态分析。

 原理如下:

  1. 背景建模:在背景分割的开始阶段,建立背景模型。

  2. 前景检测:对于每个新的视频帧中的像素,KNN背景分割器会将其与背景模型进行比较。通过计算像素与背景模型中最近的K个像素的距离(一般使用欧氏距离或其他距离度量),来对该像素进行分类。如果该像素与背景模型中的K个最近像素差异较大,则被标记为前景像素。

  3. 更新背景模型:对于被分类为背景的像素,它们有可能属于静态背景,因此会被用于更新背景模型。这种动态的背景建模可以适应背景中的变化,比如光照变化或背景目标的移动。

  4. 学习率(Learning Rate):KNN背景分割器中的学习率参数用于控制背景模型的更新速度。较高的学习率会导致背景模型更快地适应新的像素,但可能会增加背景模型的噪声。较低的学习率会导致背景模型更新缓慢,但可能更稳定。

#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{VideoCapture video = VideoCapture("vtest.avi");Mat frame, bgMask_KNN, background;Ptr<BackgroundSubtractor> ptrKNN = createBackgroundSubtractorKNN();while (video.read(frame)){imshow("test", frame);ptrKNN->apply(frame, bgMask_KNN);imshow("background_mask_by_KNN", bgMask_KNN);char c = waitKey(30);if (c == 27)break;}video.release();cv::destroyWindow("video");return 0;
}

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

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

相关文章

深入探索Linux文件链接技术:ln命令的妙用

当谈及 Linux 系统中的文件管理和链接技术&#xff0c;ln 命令是一个不可或缺的工具。ln 命令用于创建硬链接和软链接&#xff0c;它在 Linux 文件系统中发挥着重要作用&#xff0c;为用户提供了更大的灵活性和组织能力。在本文中&#xff0c;我们将深入探讨 ln 命令是什么&…

1999-2021年全国各地级市专利申请与获得情况、绿色专利申请与获得情况面板数据

1999-2021年全国各地级市专利申请与获得情况、绿色专利申请与获得情况面板数据 1、时间&#xff1a;2000-2021年 2、来源&#xff1a;国家知识产权局 3、范围&#xff1a;地级市&#xff08;具体每年地级市数量参看下文图片&#xff09; 4、指标&#xff1a;申请专利数&…

【C/C++】C语言位图操作实例(亲测)

C语言中的位图操作通常用于处理大量的二进制数据&#xff0c;例如图像处理、压缩算法等。以下是一些C语言中的位图操作实例&#xff1a; 设置位图中的某一位 void set_bit(unsigned char *bitmap, int bit) {bitmap[bit / 8] | (1 << (bit % 8)); }这个函数将位图中的第…

【leetcode】1. 两数之和(easy)

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

Jenkins 中 shell 脚本执行失败却不自行退出

Jenkins 中 执行 shell 脚本时&#xff0c;有时候 shell 执行失败了&#xff0c;或者判断结果是错误的&#xff0c;但是 Jenkins 执行完成后确提示成功 success 。 此时&#xff0c;可以通过条件判断来解决这个问题&#xff0c;让 Jenkins 强制退出并提示执行失败 failed 。 …

【MySQL系列】表约束的学习

「前言」文章内容大致是MySQL的表的约束。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、MySQL表的约束1.1 空属性1.2 默认值&#xff08;default&#xff09;1.3 列描述&#xff08;comment&#xff09;1.4 zerofill1.5 主键&#xff08;primary ke…

95 | Python 设计模式 —— 策略模式

策略模式(Strategy Pattern) 引言 策略模式是一种行为型设计模式,它定义了一系列的算法,并将每个算法封装在独立的策略类中,使得这些算法可以相互替换,而不影响客户端的使用。策略模式可以让客户端根据不同的需求选择不同的算法,从而使得系统更加灵活和可扩展。 在本…

将色号转为 不同透明度

export default function hexToRgb(hex: string, a 1) {// Hex&#xff08;十六进制&#xff09;、Dec&#xff08;十进制&#xff09;、Octal&#xff08;八进制&#xff09;、Bin&#xff08;二进制&#xff09;const result /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i…

stm32_断点调试无法进入串口接收中断

先说结果&#xff0c;可能是stm32调试功能/keil软件/调试器&#xff08;试过STLINK和JLINK两种&#xff09;的问题&#xff0c;不是代码&#xff1b; 1、入坑 配置完串口后&#xff0c;可以发送数据到串口助手&#xff0c;但不能接收数据并做处理&#xff0c;所以第一步&…

目标检测常用的数据集格式

在目标检测领域&#xff0c;有三种常用的数据集&#xff1a; 数据集标注文件格式bbox格式vocxmlxmin, ymin, xmax, ymax:bbox左上角(xmin, ymin)和右下角(xmax, ymax)的坐标cocojsonx, y, w, h:bbox左上角坐标(x, y)以及宽(w)和高(h)yolotxtxcenter, ycenter, w, h:bbox的中心…

【阻止IE强制跳转到Edge浏览器】

由于微软开始限制用户使用Internet Explorer浏览网站&#xff0c;IE浏览器打开一些网页时会自动跳转到新版Edge浏览器&#xff0c;那应该怎么禁止跳转呢&#xff1f; 1、点击电脑左下角的“搜索框”或者按一下windows键。 2、输入“internet”&#xff0c;点击【Internet选项…

LabVIEW开发分段反射器测试台

LabVIEW开发分段反射器测试台 随着对太空的观察需求越来越远&#xff0c;而不是当前技术&#xff08;如哈勃望远镜&#xff09;所能达到的&#xff0c;有必要增加太空望远镜主镜的尺寸。但是&#xff0c;增加主镜像的大小时存在几个问题。随着反射镜尺寸的增加&#xff0c;制造…

【jvm】jvm发展历程

目录 一、Sun Classic VM二、Exact VM三、HotSpot VM四、JRockit五、J9六、KVM、CDC、CLDC七、Azul VM八、Liquid VM九、Apache Harmony十、Microsoft JVM十一、Taobao JVM十二、Dalvik VM 一、Sun Classic VM 1.1996年java1.0版本&#xff0c;sun公司发布了sun classic vm虚拟…

vue3官网文档学习、复习笔记(快速上手)

目录 2.Attribute 绑定&#xff08;v-bind&#xff09; 3.事件监听&#xff08;v-on&#xff09; 4.表单绑定&#xff08;v-model&#xff09; 5.条件渲染&#xff08;v-if&#xff09; 6.列表渲染&#xff08;v-for&#xff09; all.value all.value.filter&#xff08;…

【MySQL】表中的一条数据在磁盘上是如何存放的?

文章目录 1 InnoDB行格式2 COMPACT行格式2.1 记录的额外信息2.2 记录的真实数据 3 Dynamic & Compressed4 VarChar(n)中n的最大取值&#xff1f; 1 InnoDB行格式 不同的存储引擎一般是为实现不同的特性来开发的&#xff0c;真实数据在不同存储引擎中的存放格式一般是不同的…

机器学习基础

什么是机器学习&#xff1f;----本质就是寻找一个函数。 可以训练什么样的函数呢&#xff1f; 可以训练一个回归的函数&#xff0c;也可以训练一个分类的函数。 这个例子的需要分类的类别是19*19的选项。 在机器学习领域里面不止回归和分类。 举例&#xff1a;预测函数 利用已…

Nginx(3)

目录 1.Nginx虚拟主机1.1基于IP虚拟主机1.2基于端口虚拟主机1.3基于域名实现的虚拟主机 2.日志详解 1.Nginx虚拟主机 虚拟主机&#xff0c;Nginx配置中的多个server{}区域对应不同的业务(站点) 虚拟主机方式基于域名的虚拟主机不同的域名访问不同的站点基于IP的虚拟主机不同的…

MySQL—锁篇

这里写目录标题 MySQL有哪些锁全局锁表级锁行级锁意向锁 为什么需要加锁MySQL锁粒度乐观锁和悲观锁是什么?如何实现?InnoDB的行锁是如何实现的?什么是两阶段锁协议?什么是三级封锁协议&#xff1f;MySQL死锁了&#xff0c;怎么办&#xff1f;加了什么锁&#xff0c;导致死锁…

linux 防火墙经常使用的命令

# 开启防火墙服务 systemctl start firewalld # 关闭防火墙服务 systemctl stop firewalld # 重启防火墙服务 systemctl restart firewalld # 开发端口 firewall-cmd --zonepublic --add-port8080/tcp --permanent # 移除端口 firewall-cmd --zonepublic --remove-port8080/tc…

第一百二十五天学习记录:C++提高:STL-deque容器(下)(黑马教学视频)

deque插入和删除 功能描述&#xff1a; 向deque容器中插入和删除数据 函数原型&#xff1a; 两端插入操作&#xff1a; push_back(elem); //在容器尾部添加一个数据 push_front(elem); //在容器头部插入一个数据 pop_back(); //删除容器最后一个数据 pop_front(); //删除容器…