资源简介
利用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的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论