aihot  2017-05-08 21:05:02  OpenCV |   查看评论   

 OpenCV(12)安防监控可疑走动报警 cvCopy()和cvCloneImage()的区别

#include <stdio.h>
#include <time.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main( int argc, char** argv )
{
//声明IplImage指针
IplImage* pFrame = NULL;     //pFrame为视频截取的一帧
IplImage* pFrame1 = NULL;      //第一帧
IplImage* pFrame2 = NULL;//第二帧
IplImage* pFrame3 = NULL;//第三帧
IplImage* pFrImg = NULL;     //pFrImg为当前帧的灰度图
IplImage* pBkImg = NULL;     //pBkImg为当前背景的灰度图
IplImage* pBkImgTran = NULL;//pBkImgTran为当前背景处理过的图像
IplImage* pFrImgTran = NULL;//pFrImgTran为当前背景处理过的图像
CvMat* pFrameMat = NULL;     //pFrameMat为当前灰度矩阵
CvMat* pFrMat = NULL;      //pFrMat为当前前景图矩阵,当前帧减去背景图
CvMat* bg1 = NULL;
CvMat* bg2 = NULL;
CvMat* bg3 = NULL;
CvMat* pFrMatB = NULL;     //pFrMatB为二值化(0,1)的前景图
CvMat* pBkMat = NULL;
CvMat* pZeroMat = NULL;               //用于计算bg1 - bg2 的值
CvMat* pZeroMatB = NULL;//用于计算 pZeroMat阈值化后来判断有多少个零的临时矩阵
CvCapture* pCapture = NULL;
int warningNum = 0;      //检测到有异物入侵的次数
int nFrmNum = 0;//帧计数
int status = 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 ==1)
    if ( !(pCapture = cvCaptureFromCAM(-1)))
      {
        fprintf(stderr, "Can not open camera.\n");
        return -2;
      }
//打开视频文件
 1/5    1 2 3 4 5 下一页 尾页
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV(12)安防监控可疑走动报警 cvCopy()和cvCloneImage()的区别

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]