aihot  2017-05-08 21:05:02  OpenCV |   查看评论   
if (argc == 2)
    if ( !(pCapture = cvCaptureFromFile(argv[1])))
      {
        fprintf(stderr, "Can not open video file %s\n", argv[1]);
        return -2;
      }
 
//开始计时
time_t start,end;
time(&start);        //time() 返回从1970年1月1号00:00:00开始以来到现在的秒数(有10为数字)。
printf("%d\n",start);
//逐帧读取视频
while (pFrame = cvQueryFrame( pCapture ))
    {
      nFrmNum++;
      //如果是第一帧,需要申请内存,并初始化
      if (nFrmNum == 1)
        {
          pBkImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
          pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
          pBkImgTran = cvCreateImage(cvSize(pFrame->width,pFrame->height), IPL_DEPTH_8U,1);
          pFrImgTran = cvCreateImage(cvSize(pFrame->width,pFrame->height), IPL_DEPTH_8U,1);
          pBkMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
          pZeroMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
          pFrMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
          pFrMatB = cvCreateMat(pFrame->height, pFrame->width, CV_8UC1);
          pZeroMatB = cvCreateMat(pFrame->height, pFrame->width, CV_8UC1);
          pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
          cvZero(pZeroMat);
          //转化成单通道图像再处理
          cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);
          //转换为矩阵
          cvConvert(pFrImg, pBkMat);
        }
      else /* 不是第一帧的就这样处理 */
        {
          //pFrImg为当前帧的灰度图
          cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);
          //pFrameMat为当前灰度矩阵
          cvConvert(pFrImg, pFrameMat);
          //pFrMat为前景图矩阵,当前帧减去背景图
          cvAbsDiff(pFrameMat, pBkMat, pFrMat);
          //pFrMatB为二值化(0,1)的前景图
          cvThreshold(pFrMat,pFrMatB, 60, 1, CV_THRESH_BINARY);
          //将图像矩阵转化为图像格式,用以显示
          cvConvert(pBkMat, pBkImgTran);   
          cvConvert(pFrMat, pFrImgTran);  
          //显示图像
 

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

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