opencv实践程序7——混合高斯算法
来源:互联网 发布:决战萨斯城 知乎 编辑:程序博客网 时间:2024/06/05 09:58
//2.0教材代码#include <iostream>#include <cv.h>#include <highgui.h>#include "cvaux.h" using namespace std;using namespace cv;int main( int argc, char** argv ){VideoCapture cap(0); if(!cap.isOpened())return 0;Mat frame,foreground; namedWindow("提取的前景",CV_WINDOW_AUTOSIZE); BackgroundSubtractorMOG mog;bool stop(false);while(!stop) { if(!cap.read(frame))break;mog(frame,foreground,0.09);//更新背景并返回前景threshold(foreground,foreground,128,255,THRESH_BINARY_INV); imshow("原视频", frame); imshow("提取的前景", foreground); if(waitKey(10) >= 0) stop=true; } return 0;}/*//中文网站的代码#include <stdio.h> #include <cv.h> #include <cxcore.h> #include <highgui.h> #include <cvaux.h>//必须引此头文件 int main( int argc, char** argv ) { IplImage* pFrame = NULL; IplImage* pFrImg = NULL; IplImage* pBkImg = NULL; CvCapture* pCapture = cvCaptureFromAVI("2.avi"); int nFrmNum = 0; cvNamedWindow("video", 1); cvNamedWindow("background",1); cvNamedWindow("foreground",1); cvMoveWindow("video", 30, 0); cvMoveWindow("background", 360, 0); cvMoveWindow("foreground", 690, 0); //初始化高斯混合模型参数 CvGaussBGModel* bg_model=NULL; 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,1); //高斯背景建模,pFrame可以是多通道图像也可以是单通道图像 //cvCreateGaussianBGModel函数返回值为 CvBGStatModel*, //需要强制转换成CvGaussBGModel* bg_model = (CvGaussBGModel*)cvCreateGaussianBGModel(pFrame, 0); } else { //更新高斯模型 cvUpdateBGStatModel(pFrame, (CvBGStatModel *)bg_model ); //pFrImg为前景图像,只能为单通道 //pBkImg为背景图像,可以为单通道或与pFrame通道数相同 cvCopy(bg_model->foreground,pFrImg,0); cvCopy(bg_model->background,pBkImg,0); //把图像正过来 pBkImg->origin=1; pFrImg->origin=1; cvShowImage("video", pFrame); cvShowImage("background", pBkImg); cvShowImage("foreground", pFrImg); if( cvWaitKey(2) >= 0 ) break; } } //释放高斯模型参数占用内存 cvReleaseBGStatModel((CvBGStatModel**)&bg_model); cvDestroyWindow("video"); cvDestroyWindow("background"); cvDestroyWindow("foreground"); cvReleaseImage(&pFrImg); cvReleaseImage(&pBkImg); cvReleaseCapture(&pCapture); return 0; } */
0 0
- opencv实践程序7——混合高斯算法
- OpenCV中的混合高斯算法原理
- OpenCV中的混合高斯算法原理 .
- OpenCV中的混合高斯算法原理
- OpenCV中的混合高斯算法原理
- 混合高斯背景建模——opencv
- opencv实践程序4——canny实现摄像头的边缘检测,高斯背景建模
- 哲学与算法——高斯混合模型算法
- opencv高斯混合模型
- opencv混合高斯模型
- 混合高斯模型 opencv
- opencv实践程序8——codebook算法
- 高斯混合模型算法
- 高斯混合模型算法
- 混合高斯模型算法
- 高斯混合模型算法:
- 混合高斯模型算法
- 混合高斯模型算法
- QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos的相互比较
- 消防员抱喷火煤气罐被拍照 被赞“抱火哥”
- Linux NULL定义
- 下拉框 存放多值
- Flex AIR)创建“不规则形状”的Air透明窗体
- opencv实践程序7——混合高斯算法
- 雷军成功踏上移动互联网游轮
- ICMP:网际控制报文协议
- 英超争冠 曼城掉队
- android控件实现抖动的效果
- Linux学习:第一章-Linux简介
- Java 泛型
- 【转】我与selerant之 劳动仲裁篇
- opencv学习-建立人脸识别分类器