国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

基于OpenCv的運動物體檢測算法

2020-01-26 13:47:11
字體:
來源:轉載
供稿:網友

基于一個實現的基于OpenCv的運動物體檢測算法,可以用于檢測行人或者其他運動物體。

#include <stdio.h>  #include <cv.h>  #include <cxcore.h>  #include <highgui.h>  int main( int argc, char** argv )     //聲明IplImage指針   IplImage* pFrame = NULL;   IplImage* pFrImg = NULL;   IplImage* pBkImg = NULL;   CvMat* pFrameMat = NULL;   CvMat* pFrMat = NULL;   CvMat* pBkMat = NULL;     CvCapture* pCapture = NULL;      int nFrmNum = 0;   //創建窗口    cvNamedWindow("video", 1);   cvNamedWindow("background",1);   cvNamedWindow("foreground",1);   //使窗口有序排列   cvMoveWindow("video", 30, 0);   cvMoveWindow("background", 360, 0);   cvMoveWindow("foreground", 690, 0);   argc = 1;    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;     }   //打開視頻文件   if(argc == 2)    if( !(pCapture = cvCaptureFromFile(argv[1])))     {    fprintf(stderr, "Can not open video file %s/n", argv[1]);    return -2;     }      //逐幀讀取視頻   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);     pBkMat  = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);     pFrMat  = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);     pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);     //轉化成單通道圖像再處理     cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);     cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);     cvConvert(pFrImg, pFrameMat);     cvConvert(pFrImg, pFrMat);     cvConvert(pFrImg, pBkMat);    }     else    {     cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);     cvConvert(pFrImg, pFrameMat);     //先高斯濾波,以平滑圖像     //cvSmooth(pFrameMat, pFrameMat, CV_GAUSSIAN, 3, 0, 0);          //當前幀跟背景圖相減     cvAbsDiff(pFrameMat, pBkMat, pFrMat);     //二值化前景圖     cvThreshold(pFrMat, pFrImg, 60, 255.0, CV_THRESH_BINARY);     //進行形態學濾波,去掉噪音      //cvErode(pFrImg, pFrImg, 0, 1);     //cvDilate(pFrImg, pFrImg, 0, 1);     //更新背景     cvRunningAvg(pFrameMat, pBkMat, 0.003, 0);     //將背景轉化為圖像格式,用以顯示     cvConvert(pBkMat, pBkImg);     //顯示圖像     cvShowImage("video", pFrame);     cvShowImage("background", pBkImg);     cvShowImage("foreground", pFrImg);     //如果有按鍵事件,則跳出循環     //此等待也為cvShowImage函數提供時間完成顯示      //等待時間可以根據CPU速度調整     if( cvWaitKey(2) >= 0 )      break;      }    }       //銷毀窗口   cvDestroyWindow("video");   cvDestroyWindow("background");   cvDestroyWindow("foreground");   //釋放圖像和矩陣   cvReleaseImage(&pFrImg);   cvReleaseImage(&pBkImg);   cvReleaseMat(&pFrameMat);   cvReleaseMat(&pFrMat);   cvReleaseMat(&pBkMat);   cvReleaseCapture(&pCapture);   return 0;  } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 徐水县| 香河县| 贵州省| 临洮县| 石家庄市| 拜泉县| 名山县| 巩义市| 凤庆县| 新营市| 清苑县| 台东县| 金昌市| 岳池县| 冀州市| 岳阳县| 洛南县| 修水县| 全南县| 天镇县| 老河口市| 南华县| 台前县| 临夏县| 手机| 江城| 辽中县| 江西省| 焦作市| 宝兴县| 广昌县| 佛学| 彭泽县| 广平县| 广元市| 武夷山市| 靖边县| 龙山县| 张家口市| 沙河市| 布尔津县|