| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 详解OpenCV的视频背景/前景分割(背景建模/前景提取)类cv::BackgroundSubtractorMOG2并利用它实现对道路监控视频前景/背景的提取 -> 正文阅读 |
|
[人工智能]详解OpenCV的视频背景/前景分割(背景建模/前景提取)类cv::BackgroundSubtractorMOG2并利用它实现对道路监控视频前景/背景的提取 |
cv::BackgroundSubtractorMOG2和cv::bgsegm::BackgroundSubtractorMOG一样,都是基于高斯混合模型的背景与前景分割算法。 cv::BackgroundSubtractorMOG2是对cv::bgsegm::BackgroundSubtractorMOG的改进,经过改进,它实现了自适应高斯混合模型参数的更新,增强了复杂场景背景检测的性能。 具体的算法原理可以参见下面两篇论文: 第一篇论文的摘要如下:
翻译如下: 从第一篇论文的摘要可以看出,类cv::BackgroundSubtractorMOG2能够自动更新高斯混合模型的参数。 第二篇论文的摘要如下:
翻译如下: 从第二篇论文的摘要可以看出,类cv::BackgroundSubtractorMOG2除了能够自动更新高斯混合模型的参数,而且可以为每个像素选择适当数量的组件,重点是在像素级尺度上进行处理。 继承于基类cv::BackgroundSubtractor的成员函数apply()和getBackgroundImage()的详细介绍见博文:https://blog.csdn.net/wenhao_ir/article/details/125007017 其特有的成员函数如下:
成员函数getBackgroundRatio()的介绍见博文 https://blog.csdn.net/wenhao_ir/article/details/125010301
成员函数getComplexityReductionThreshold()用于返回复杂性降低阈值。此参数定义每一个样本中支持高斯混合模型某个分量存在需要的样本数量。CT=0.05是所有样本的默认值。通过将CT设置为0,可以得到与标准Stauffer&Grimson算法非常相似的算法。
成员函数getDetectShadows()用于返回阴影检测标志。如果阴影检测标志的值为true,那么算法会检测阴影并对其进行标记。
成员函数getHistory()用于返回影响背景模型的历史帧数。
成员函数getNMixtures()用于返回高斯混合模型中高斯分量的个数。
成员函数getShadowThreshold()的介绍见博文 https://blog.csdn.net/wenhao_ir/article/details/125007017
成员函数getShadowThreshold()的介绍见博文 https://blog.csdn.net/wenhao_ir/article/details/125007017
成员函数getVarInit()用于返回每个高斯分量的初始方差。
成员函数getVarMax()用于返回所有高斯分量中的最大方差。
成员函数getVarMin()用于返回所有高斯分量中的最小方差。
成员函数getVarThreshold()用于返回返回像素模型匹配的方差阈值。这个参数是Mahalanobis距离(马氏距离)平方的主阈值,它用于判断样本是否被背景模型很好的描述。它相当于上面论文中的Cthr参数。
成员函数getVarThresholdGen()用于返回是否要为像素新建高斯混合混型组件的方差阈值,对应于论文中的参数Tg 。如果根据参数VarThreshold,样本不能匹配现有背景模型的话,就得考虑是否要为其新建高斯混合混型组件了,那么什么情况下为其新建高斯混合混型组件呢,就根据值VarThresholdGe来判断,如果这个样本的标准差的3倍大于等VarThreshold,则为其新建高斯混合混型组件,否则,视为前景。显然,这个值越小,产生的组件越多。较高的VarThreshold虽然组件数量会较小,但也会导致这些组件过大。该参数默认值9,来历为当标准差取3时得到的,标准差为3,则其3倍为9。
成员函数setBackgroundRatio()用于设置背景比率,详情见对成员函数getBackgroundRatio()的介绍。
成员函数setComplexityReductionThreshold()用于设置值ComplexityReductionThreshold,详见对成员函数getComplexityReductionThreshold()的介绍。
成员函数setDetectShadows()用于设置是否要进行阴影检测。
成员函数setHistory()用于设置影响背景模型的历史帧数。
成员函数setNMixtures()用于设置高斯混合模型中高斯分量的个数。
成员函数setShadowThreshold()的详情见博文 https://blog.csdn.net/wenhao_ir/article/details/125007017
成员函数setShadowValue()的详情见博文 https://blog.csdn.net/wenhao_ir/article/details/125007017
成员函数setVarInit()用于设置参数VarInit,详情见对成员函数getVarInit()的介绍。
成员函数setVarMax()用于设置参数VarMax,详情见对成员函数getVarMax()的介绍。
成员函数setVarMin()用于设置参数VarMin,详情见对成员函数getVarMin()的介绍。
成员函数setVarThreshold()用于设置参数VarThreshold,详情见对成员函数getVarThreshold()的介绍。
成员函数setVarThresholdGen()用于设置参数VarThresholdGen,详情见对成员函数getVarThresholdGen()的介绍。 在上示例代码前,还需要介绍下函数createBackgroundSubtractorMOG2(), 函数createBackgroundSubtractorMOG2()用于构建类BackgroundSubtractorMOG2的实例化对象,并返回对象指针。
参数history和varThreshold已经在上面介绍过了,所以只说下detectShadows这个参数,这个参数表示是否对前景进行阴影检测,默认值为ture,表示启用前景阴影检测。 下面上示例代码:
运行结果如下图所示: 延伸阅读: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 2:40:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |