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

OpenCV视觉分析之运动分析(2)背景减除类:BackgroundSubtractorKNN的使用

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

算法描述

K-最近邻(K-nearest neighbours, KNN)基于的背景/前景分割算法。

该类实现了如 319中所述的 K-最近邻背景减除。如果前景像素的数量很少,则非常高效、

cv::BackgroundSubtractorKNN 是 OpenCV 中用于背景减除的一种具体实现,它是 cv::BackgroundSubtractor 基类的一个派生类。该类使用 K 最近邻(K-Nearest Neighbors, KNN)算法来检测前景物体。KNN 方法在背景建模方面具有较好的性能,特别是在处理光照变化和动态背景方面。

代码示例


#include <iostream>
#include <opencv2/opencv.hpp>int main( int argc, char** argv )
{// 创建一个 BackgroundSubtractorKNN 对象cv::Ptr< cv::BackgroundSubtractor > pBackSub = cv::createBackgroundSubtractorKNN();// 设置参数// 打开视频文件cv::VideoCapture capture( 0 );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.lryc.cn/news/468363.html

相关文章:

  • android黑屏问题记录
  • SIP 业务举例之 Call Forwarding - No Answer(无应答呼叫转移)
  • EFCore pgsql Join 查询
  • 力扣80:删除有序数组中重复项
  • 等保测评:安全计算环境的详细讲解
  • [Java基础] Lambda 表达式
  • 《深入掌握高德地图 API:全面调用指南与最佳实践》
  • 【功能安全】系统架构设计
  • FPGA实现PCIE视频采集转USB3.0输出,基于XDMA+FT601架构,提供3套工程源码和技术支持
  • 基于docker-compose编排部署微服务快速开发框架
  • 【Java面试——并发编程——相关类和关键字——Day6】
  • Android 两种方式实现类似水波扩散效果
  • 基于SSM+小程序的垃圾分类管理系统(垃圾2)
  • 微服务网格Istio介绍
  • 【MySQL】视图与用户管理——MySQL
  • Go语言中三个输入函数(scanf,scan,scanln)的区别
  • uniapp使用html2canvas时,页面内的image元素模糊
  • 华为交换机堆叠
  • Spring Boot框架下中小企业设备管理系统开发
  • 鸿蒙开发融云demo消息未读数
  • 非对称加密算法(RSA):原理、应用与代码实现
  • docker部署SQL审核平台Archery
  • ceph 删除rbd 锁的命令
  • MySQL【知识改变命运】01
  • 苍穹外卖 Maven依赖配置
  • Lucas带你手撕机器学习——SVM支持向量机
  • 将后端返回的网络url转成blob对象,实现pdf预览
  • 民峰金融智能交易模型的应用与未来趋势
  • 文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑负荷时空迁移的5G基站与配电网协同优化运行 》
  • 数据结构中的堆(Heap)