zoukankan      html  css  js  c++  java
  • FG模型

    一直没搞懂CvBGStatModel和CvFGDStatModel有什么区别。CvBGStatModel模型的创建用cvCreateGaussianBGModel,CvFGDStatModel模型的创建用cvCreateFGDStatModel,它们的更新都用cvUpdateBGStatModel。

    #include<iostream>
    #include<opencv2/opencv.hpp>
    #include<opencv/cvaux.hpp>
    using namespace std;
    
    int main()
    {
        IplImage *pFrame=NULL;
        IplImage *pFrImg=NULL;
        IplImage *pBkImg=NULL;
        CvCapture *pCapture=NULL;
        pCapture= cvCreateFileCapture("video.avi");
    
        cvNamedWindow("video",1);
        cvNamedWindow("background",1);
        cvNamedWindow("foreground",1);
        cvMoveWindow("video",30,0);
        cvMoveWindow("background",450,0);
        cvMoveWindow("foreground",900,0);
    
       CvFGDStatModel* fg_model=NULL;
    
        int nFrmNum=0;
        while(pFrame=cvQueryFrame(pCapture))
        {
            nFrmNum++;
            if(nFrmNum==1)
            {
                pBkImg=cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,3);
                pFrImg=cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,3);
                fg_model = (CvFGDStatModel*)cvCreateFGDStatModel(pFrame, 0);
    
            }
            else
            {
               cvUpdateBGStatModel(pFrame, (CvBGStatModel *)fg_model );
                pFrImg=fg_model->foreground;
                cvDilate(pFrImg,pFrImg);
    //            cvErode(pFrImg,pFrImg);//腐蚀
                pBkImg=fg_model->background;
    
                cvShowImage("video",pFrame);
                cvShowImage("background",pBkImg);
                cvShowImage("foreground",pFrImg);
    
            }
    
            if(cvWaitKey(20)>=0)
                break;
        }
    
        cvReleaseBGStatModel((CvBGStatModel**)&fg_model);
        cvDestroyAllWindows();
        cvReleaseImage(&pFrame);
        cvReleaseImage(&pFrImg);
        cvReleaseImage(&pBkImg);
        cvReleaseCapture(&pCapture);
        return 0;
    }
    

     程序运行结果:

  • 相关阅读:
    rust 宏
    umi 调试
    rust 编译器工作流
    rust 神奇的特质
    rust 生命周期2
    rust 函数-生命周期
    rust 九九乘法表
    rust 代码生成选项
    rust 编码模式
    恢复到版本并销毁之后的git提交记录
  • 原文地址:https://www.cnblogs.com/juaner767/p/3678919.html
Copyright © 2011-2022 走看看