资源简介
基于opencv的单高斯背景建模demo,直接运行即可,使用摄像头获取视频,VS2010直接使用
代码片段和文件信息
/*******************单高斯背景建模v1.0*************************
************************2010.01.22****************************/
#include
#include
#include
#include
#include
int main(int argc char **argv)
{
//新建窗口
cvNamedWindow(“origin“ CV_WINDOW_AUTOSIZE);
cvNamedWindow(“processing“ CV_WINDOW_AUTOSIZE);
double alpha = 0.05; //背景建模alpha值
double std_init = 20; //初始标准差
double var_init = std_init * std_init; //初始方差
double lamda = 2.5 * 1.2; //背景更新参数
//视频文件
CvCapture *capture = NULL;
//读取视频文件
if (argc == 1)
{
//从摄像头读入
capture = cvCreateCameraCapture(0);
}
else if (argc == 2)
{
//从文件读入
capture = cvCreateFileCapture(argv[1]);
}
else
{
//读入错误
printf(“input error\n“);
return -1;
}
IplImage *frame = NULL; //原始图像
IplImage *frame_u = NULL; //期望图像
IplImage *frame_var = NULL; //方差图像
IplImage *frame_std = NULL; //标准差
CvScalar pixel = {0}; //像素原始值
CvScalar pixel_u = {0}; //像素期望
CvScalar pixel_var = {0}; //像素方差
CvScalar pixel_std = {0}; //像素标准差
//初始化frame_u frame_var frame_std
frame = cvQueryframe(capture);
frame_u = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U 3);
frame_var = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U 3);
frame_std = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U 3);
for (int y = 0; y < frame->height; ++y)
{
for (int x = 0; x < frame->width; ++x)
{
pixel = cvGet2D(frame y x);
pixel_u.val[0] = pixel.val[0];
pixel_u.val[1] = pixel.val[1];
pixel_u.val[2] = pixel.val[2];
pixel_std.val[0] = std_init;
pixel_std.val[1] = std_init;
pixel_std.val[2] = std_init;
pixel_var.val[0] = var_init;
pixel_var.val[1] = var_init;
pixel_var.val[2] = var_init;
cvSet2D(frame_u y x pixel_u);
cvSet2D(frame_var y x pixel_var);
cvSet2D(frame_std y x pixel_std);
}
}
while (cvWaitKey(33) != 27) //按ESC键退出 帧率33ms
{
frame = cvQueryframe(capture);
//视频结束退出
if (!frame)
{
break;
}
double t = (double)cvGetTickCount();
//单高斯背景更新
for (int y = 0; y < frame->height; ++y)
{
for (int x = 0; x < frame->width; ++x)
{
pixel = cvGet2D(frame y x);
pixel_u = cvGet2D(frame_u y x);
pixel_std = cvGet2D(frame_std y x);
pixel_var = cvGet2D(frame_var y x);
//|I-u| < lamda*std 时认为是背景 进行更新
if (fabs(pixel.val[0] - pixel_u.val[0])
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5339 2012-08-05 15:59 dangaosi\dangaosi\dangaosi.cpp
文件 4234 2012-08-05 15:48 dangaosi\dangaosi\dangaosi.vcproj
文件 1407 2013-03-03 20:25 dangaosi\dangaosi\dangaosi.vcproj.PC-SU.Administrator.user
文件 12256 2012-08-10 08:42 dangaosi\dangaosi\Debug\BuildLog.htm
文件 663 2012-08-10 08:42 dangaosi\dangaosi\Debug\dangaosi.exe.em
文件 728 2012-08-10 08:42 dangaosi\dangaosi\Debug\dangaosi.exe.em
文件 621 2012-08-10 08:42 dangaosi\dangaosi\Debug\dangaosi.exe.intermediate.manifest
文件 65259 2012-08-10 08:42 dangaosi\dangaosi\Debug\dangaosi.obj
文件 67 2012-08-10 08:42 dangaosi\dangaosi\Debug\mt.dep
文件 568320 2012-08-10 08:42 dangaosi\dangaosi\Debug\vc90.idb
文件 520192 2012-08-10 08:42 dangaosi\dangaosi\Debug\vc90.pdb
文件 10693632 2013-03-03 20:25 dangaosi\dangaosi.ncb
文件 890 2012-08-05 15:47 dangaosi\dangaosi.sln
..A..H. 17408 2013-03-03 20:25 dangaosi\dangaosi.suo
文件 34816 2012-08-10 08:42 dangaosi\Debug\dangaosi.exe
文件 362300 2012-08-10 08:42 dangaosi\Debug\dangaosi.ilk
文件 887808 2012-08-10 08:42 dangaosi\Debug\dangaosi.pdb
目录 0 2012-08-10 08:42 dangaosi\dangaosi\Debug
目录 0 2012-08-05 15:59 dangaosi\dangaosi
目录 0 2012-08-10 08:42 dangaosi\Debug
目录 0 2013-03-03 20:25 dangaosi
----------- --------- ---------- ----- ----
13175940 21
- 上一篇:PCIE3.0 Spec完整版
- 下一篇:清爽的雨滴桌面
相关资源
- VS2010下编译的GDAL1.9.1最新版
- vs2010 配色方案+Consolas字体
- ansys18.2+VS2010安装教程+Fluent并行运算设
- VS2010配置QT和SNMP++
- VS2010免注册调用大漠插件
- 基于vs2010做的tcp通信调试工具源码
- USB转CAN通信案例vs2010(64位)
- podofo vs2010 x86编译好的库
- VS2010基于TWAIN协议实现对扫描仪的控制
- vs2010编译osg3.2.1,带有osgQtd.lib和osgQ
- win7 32位 vs2010 opencv3.00版本 opencv_worl
- VS2010代码自动补全插件Visual_Assist_X_
- OBJ模型读取并显示
- VisualAssistX-vs2010在win10系统中切换英文
- 完整代码!扫雷游戏,vs2010
- vs2010编译的32位opencv+opencv_contrib3.4.1
- 基于OpenCV的车牌识别
- 基于Openmesh的孔洞修补算法
- VS2010自带的图片库,包含许多按钮的
- VS2010调用Tesseract-OCR需要使用的全部工
- 红狼远控gh0st3.6版本的vs2010 vs2013 vs2
- 番茄助手Visual Assist 亲测,完美支持
- vs2010~vs2015番茄助手
- VS2010黑色主题和VAX
- 读OBJ模型,加载多纹理
- VS2010聊天室的开发
- vs2010串口发送接收程序
- VS2010下基于QT4.8.2开发的计算城市间最
- tesseract_ocr在vs2010下调用的全部资料
- Visual Assist X 破解版 VS2010可用
评论
共有 条评论