91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-08-04
  • 語言: 其他
  • 標簽: opencv??背景差??

資源簡介

本程序通過對采集到的視頻序列進行分析,采用背景差法和自適應背景更新的方法對,進入視頻序列或攝像頭中的人體進行自動檢測

資源截圖

代碼片段和文件信息


//利用背景建模檢測運動物體358

#include?
#include?
#include?


int?main(?int?argc?char**?argv?)//需要輸入命令行的參數
{
??//聲明IplImage指針
??IplImage*?pframe?=?NULL;?//從攝像頭或者文件中抓取并返回一幀,獲取真正的圖像的指針
??IplImage*?pFrImg?=?NULL;//申請了8位無符號整形的內存空間將第一幀圖像轉換成灰度圖像存的了這里,不是第一幀的也存到這里?也轉成灰度,在處理,作為前景
??????????????????????????//存放了二值化之后的前景,原來圖像絕對差后存放在pFrMat
??IplImage*?pBkImg?=?NULL;//申請了8位無符號整形的內存空間將第一幀圖像轉換成灰度圖像存的了這里,作為背景,再把背景圖像轉換成矩陣格式
??????????????????????????//存儲更新后的背景
??CvMat*?pframeMat?=?NULL;//存放其他幀的數組,申請32位,單精度,1通道的矩陣空間,pFrImg存的由pframe轉換過來的灰度圖像,再由pFrImg轉換過來的矩陣存的這里pframeMat
??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);

??if(?argc?!=?2?)//按ctrl+F5后就出現了window的黑面
????{
??????fprintf(stderr?“Usage:?bkgrd?\n“);
??????return?-1;
????}

??//打開視頻文件
??//在命令行上輸入Debug>bkgrd.exe?SampleVideo.avi????則argv[0]=bkgrd.exe;argv[1]=SampleVideo.avi
??if(?!(pCapture?=?cvCaptureFromFile(argv[1])))//cvCaptureFromFile?視頻獲取結構,獲得視頻的,如果獲取的不是SampleVideo.avi這個視頻則輸出不能打開視頻文件
????????????????????????????????????????????//存放著視頻
????{
??????fprintf(stderr?“Can?not?open?video?file?%s\n“?argv[1]);
??????return?-2;
????}
???
??//逐幀讀取視頻
?? while(pframe?=?cvQueryframe(?pCapture?))//cvQueryframe從攝像頭或者文件中抓取并返回一幀?IplImage*?cvQueryframe(?CvCapture*?capture?);
????{
?????? nFrmNum++;//執行完這條語句后,(i=3j=i++后,j=3,i=4),nFrmNum++=0,nFrmNum==1
??????
?????? //如果是第一幀,需要申請內存,并初始化
?????? if(nFrmNum?==?1)//如果是第一幀
{
pBkImg?=?cvCreateImage(cvSize(pframe->width?pframe->height)//IplImage*?cvCreateImage(?CvSize?size?int?depth?int?channels?);
?? IPL_DEPTH_8U1);?????????????????????????????????????????????????????//創建一幅灰度圖像,通道1,分配出了內存
?? pFrImg?=?cvCreateImage(cvSize(pframe->width?pframe->height)??
IPL_DEPTH_8U1);?????????????????????????????????????????????????????//創建一幅灰度圖像,分配出了內存,無符號8位整型?
????????????pBkMat?=?cvCreateMat(pframe->height?pframe->width?CV_32FC1);
?? pFrMat?=?cvCreateMat(pframe->height?pframe->width?CV_32FC1);//32位,單精度,1通道
?? pframeMat?=?cvCreateMat(pframe->height?pframe->width?CV_32FC1);//CvMat*?cvCreateMat(?int?rows?int?cols?int?type?);

?? //轉化成單通道圖像再處理
//關鍵步驟---------------------------

評論

共有 條評論