opencv::BackgroundSubtraction基本原理
2024-09-05 01:01:58
背景消除
BS算法
- 图像分割(GMM – 高斯混合模型)
- 机器学习(KNN –K个最近邻)
BackgroundSubtractor (父类)
- BackgroundSubtractorMOG2
- BackgroundSubtractorKNN
#include <opencv2/opencv.hpp>
#include <iostream> using namespace cv;
using namespace std; int main(int argc, char**) {
VideoCapture capture;
capture.open("D:/images/video_004.avi");
if (!capture.isOpened()) {
printf("could not find the video file...\n");
return -;
}
// create windows
Mat frame;
Mat bsmaskMOG2, bsmaskKNN;
namedWindow("input video", CV_WINDOW_AUTOSIZE);
namedWindow("MOG2", CV_WINDOW_AUTOSIZE); Mat kernel = getStructuringElement(MORPH_RECT, Size(, ), Point(-, -)); // MOG2 BS
Ptr<BackgroundSubtractor> pMOG2 = createBackgroundSubtractorMOG2();
// KNN BS
Ptr<BackgroundSubtractor> pKNN = createBackgroundSubtractorKNN();
while (capture.read(frame)) {
imshow("input video", frame); pMOG2->apply(frame, bsmaskMOG2);
morphologyEx(bsmaskMOG2, bsmaskMOG2, MORPH_OPEN, kernel, Point(-, -));
imshow("MOG2", bsmaskMOG2); pKNN->apply(frame, bsmaskKNN);
morphologyEx(bsmaskKNN, bsmaskKNN, MORPH_OPEN, kernel, Point(-, -));
imshow("KNN", bsmaskKNN); char c = waitKey();
if (c == ) {
break;
}
} capture.release();
waitKey();
return ;
}
最新文章
- IIS7下使用4.0框架集成模式URLRewriter重写中文URL乱码问题
- shell 命令集
- Linux下执行的java命令重定向到文件中的方法
- perl脚本基础总结
- SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化
- 你还在问android横竖屏切换的生命周期?
- include动作标记和include指令标记学习笔记
- Java的访问控制
- Wix#可以直接写C#代码来生成Wix的MSI安装文
- python之路-pip安装
- [j2ee][IDEA properties中文乱码解决]
- php面试题整理(二)
- matlab求导数
- array_map 巧替 foreach
- bzoj3884上帝与集合的正确用法
- DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF
- day55 linux 基础以及系统优化
- 把外置sd卡映射为内置sd卡地一个目录
- 华为S5300系列交换机V100R005SPH020升级补丁
- Linux字符设备驱动--No.1