资源简介
利用opencv,对简单的背景情况下的人体运动进行摔倒检测,当运动的人摔倒时,记录摔倒帧。
代码片段和文件信息
#include “cv.h“
#include “cvaux.h“
#include “highgui.h“
#include
#include
void play(CvCapture* captureint startint end){ //读取视频片段的方法
IplImage* frame =NULL;
cvSetCaptureProperty(capture CV_CAP_PROP_POS_frameS start);
cvNamedWindow(“Fragment“0);
while (start<=end)
{
start++;
frame = cvQueryframe(capture);
if (!frame)
break;
cvShowImage(“Fragment“ frame);
cvWaitKey(30);
}
}
int main(int argc char** argv)
{
/* Start capturing */
CvCapture* capture = 0;
CvMemStorage* storage= cvCreateMemStorage(0);
CvSeq* contour= 0;
IplImage* pFrImg = NULL;
CvFont font;
int nFrmNum = 0;
int totalFrm = 0;
int select;
cvInitFont( &font CV_FONT_VECTOR01 1 0 1 8);
if( argc == 1 || (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0])))
capture = cvCaptureFromCAM( argc == 2 ? argv[1][0] - ‘0‘ : 0 );
else if( argc == 2 )
capture = cvCaptureFromAVI( argv[1] );
if( !capture )
{
fprintf(stderr“Could not initialize...\n“);
return -1;
}
/* Capture 1 video frame for initialization */
IplImage* videoframe = NULL;
videoframe = cvQueryframe(capture); //读取视频
totalFrm = (int) cvGetCaptureProperty(capture CV_CAP_PROP_frame_COUNT); //得到视频总帧数
printf(“%d\n“totalFrm);
int FallFrm[totalFrm];
int FallFrms[totalFrm][2];
int Cframes[totalFrm][2];
int Fframes[totalFrm][2];
for(int i=0;i {
FallFrm[i] =0;
for(int j=0;j<2;j++)
{
FallFrms[i][j] =0;
Cframes[i][j] =0;
Fframes[i][j] =0;
}
}
if(!videoframe)
{
printf(“Bad frame \n“);
exit(0);
}
// Create windows
cvNamedWindow(“VIDEO“ 1);
cvNamedWindow(“FG“ 1);
cvNamedWindow(“DETECT“ 1);
cvMoveWindow(“VIDEO“ 30 0);
cvMoveWindow(“FG“ 360 0);
cvMoveWindow(“DETECT“ 690 0);
CvGaussBGStatModelParams* params = new CvGaussBGStatModelParams; //高斯建模参数
params->win_size=200;
params->n_gauss=5;
params->bg_threshold=0.5;
params->std_threshold=3.5;
params->minArea=15;
params->weight_init=0.05;
params->variance_init=30;
// Creat CvBGStatModel
// cvCreateGaussianBGModel( IplImage* first_frame CvGaussBGStatModelParams* parameters )
// or
// cvCreateGaussianBGModel( IplImage* first_frame )
CvBGStatModel* bgModel = NULL;
while(videoframe = cvQueryframe(capture)) //逐帧显示视频
{
nFrmNum++;
if(nFrmNum == 1)
// Grab a fram
{
// videoframe = cvQueryframe(capture);
pFrImg = cvCreateImage(cvSize(videoframe->width videoframe->height) IPL_DEPTH_8U1);
// cvCvtColor( videoframepFrImg CV_BGR2GRAY);
//if( !videoframe )
// break;
bgModel = cvCreateGaussianBGModel(videoframe params); //建立高斯模型
}else
// Update model
{
cvUpdateBG
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7875 2012-01-11 17:17 gaosi\gaosi.cpp
目录 0 2012-05-23 15:50 gaosi
----------- --------- ---------- ----- ----
7875 2
相关资源
- Opencv行人检测代码 自带hog检测
- opencv读取usb摄像头和播放视频
- ARM上利用opencv实现人脸识别
- opencv_contrib xfeatures2d boostdesc
- Linux上Qt-OpenCV采集摄像头视频并显示
- OpenCV利用Qt的GUI显示图片
- 基于OpenCV3.2+Qt5.8的basler相机硬件触发
- 基于Opencv的图像分类
- 基于opencv + 多线程的目标跟踪
- 基于OpenCV的多种条形码识别算法
- 智能交通系统 虚拟线圈 车流量检测
- Mastering_OpenCV_第六章车牌识别word版本
- opencv 画图库
- 3d结构光扫描 opencv
- 九点标定opencv+VS2015)
- opencv调整图像亮度对比度的
- libopencv_info.so
- 自实现双边滤波代码及测试图像
- opencv2.4.7安装程序及教学
- 虚拟视点绘制DIBR源码
- qt+zbar+opencv 环境配置
- opencv图像配准
- OpenCV利用查找表Look-up table增加图像对
- VS2017下用OpenCV实时播放RTSP视频流并截
- OpenCV 飞行游戏手势控制源码.rar
- Qt+Opencv实现四步相移
- 相机标定棋盘图
- Opencv实战项目
- opencv.txt
- 利用Opencv较高效率的视频图像传输
评论
共有 条评论