OpenCV 背景消除和提取

阅读: 评论:0

OpenCV 背景消除和提取

OpenCV 背景消除和提取

视频来源:=oHFr0R6jQ6I

以下代码用OpenCV实现了视频中背景消除和提取的建模,涉及到KNN(K近邻算法)和GMM(高斯混合模型)。

//
//  main.cpp
//  opencv-learning
//
//  Created by _R on 2019/1/9.
//  Copyright © 2019 _R. All rights reserved.
//#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main(int argc, char* argv[])
{VideoCapture video = VideoCapture("/Users/_R/Desktop/Highway_Test_640x360_30p.mp4");if (!video.isOpened()) {cout << "could not load video file ..." << endl;return -1;}Mat frame, bgMask_MOG2, bgMask_KNN, background;Mat kernel = getStructuringElement(MORPH_RECT, Size(3,3));namedWindow("highway_test", WINDOW_AUTOSIZE);namedWindow("background_mask_by_MOG2", WINDOW_AUTOSIZE);namedWindow("background_by_KNN", WINDOW_AUTOSIZE);namedWindow("background_mask_by_KNN", WINDOW_AUTOSIZE);Ptr<BackgroundSubtractor> ptrMOG2 = createBackgroundSubtractorMOG2();Ptr<BackgroundSubtractor> ptrKNN = createBackgroundSubtractorKNN();while (ad(frame)) {imshow("highway_test", frame);ptrMOG2->apply(frame, bgMask_MOG2);morphologyEx(bgMask_MOG2, bgMask_MOG2, MORPH_OPEN, kernel);ptrKNN->apply(frame, bgMask_KNN);ptrKNN->getBackgroundImage(background);imshow("background_by_KNN", background);imshow("background_mask_by_MOG2", bgMask_MOG2);imshow("background_mask_by_KNN", bgMask_KNN);char c = waitKey(50);if (c == 27) {break;}}waitKey(0);lease();return 0;
}
效果展示

视频展示:

本文发布于:2024-03-12 14:41:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1710649197144705.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:背景   OpenCV
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23