高斯模型是一种图像处理背景提取的处理方法,适用于背景单一不变的场合,其他如混合高斯模型等方法都是对单高斯模型的扩展,单以单高斯模型最为简便,而且采取参数迭代方式,不用每次都进行建模处理。
#include#include #include #include #include //必须引此头文件 int main( int argc, char** argv ) { IplImage* pFrame = NULL; IplImage* pFrImg = NULL; IplImage* pBkImg = NULL; CvCapture* pCapture = NULL; int nFrmNum = 0; cvNamedWindow("video", 1); cvNamedWindow("background",1); cvNamedWindow("foreground",1); cvMoveWindow("video", 30, 0); cvMoveWindow("background", 360, 0); cvMoveWindow("foreground", 690, 0); if( argc > 2 ) { fprintf(stderr, "Usage: bkgrd [video_file_name]n"); return -1; } //打开视频文件 if(argc == 2) if( !(pCapture = cvCaptureFromFile(argv[1]))) { fprintf(stderr, "Can not open video file %sn", argv[1]); return -2; } //打开摄像头 if (argc == 1) if( !(pCapture = cvCaptureFromCAM(-1))) { fprintf(stderr, "Can not open camera.n"); return -2; } //初始化高斯混合模型参数 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) X
正在加载信息~
推荐阅读
linux下C/C++网络编程基本:socket实现tcp和udp的例子
最新回复 (0)
站点信息
- 文章2281
- 用户1336
- 访客9579366
每日一句
Great hopes make great men.
伟大的理想造就伟大的人。
伟大的理想造就伟大的人。
- 使用MyBatis_Generator生成Dto、Dao、Mapping
- 解决vue动态生成el-table-column按钮点击事件
- Android Studio创建进程通信简单例子
- 简单利用Clover四叶草安装U盘安装黑苹果
- 为什么数据结构和算法很重要?
- 仙剑奇侠传3d回合-PC端辅助
- 谷歌Pixel正在开始起飞?
- 新手安装黑苹果OS X 10.11教程
- 通过HOOK技术破解Assembly-CSharp.dll
- How to Ungroup Icons on Windows 11 Taskbar With a Registry Hack (and 2 More Ways)
- NDK cmake报错:asm/types.h not found
- 【源码】Pixel Dungeon
- thinkpad t470p装黑苹果系统10.13.2
新会员