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

資源簡介

OpenCV2.4.9的基于背景差分法的視頻目標運動偵測的代碼,相應位置有具體的注釋,具體分析見博客http://blog.csdn.net/primetong/article/details/79609993

資源截圖

代碼片段和文件信息

//解決VS2013中fopen替代為fopen_s的問題
//最普通的解決方法,就是使用fopen_s替代,這是fopen_s()函數的用法
//fopen_s(_Outptr_result_maybenull_?FILE?**?_File?_In_z_?const?char?*?_Filename?_In_z_?const?char?*?_Mode);
//這是fopen()函數:
//fopen(_In_z_?const?char?*?_Filename?_In_z_?const?char?*?_Mode);
//但fopen_s參數要比fopen多一個,并且返回的類型為:errno_t?__cdecl,但fopen()返回的類型為:FILE?*?__cdecl
//因此,fopen_s函數可能并不適合自己的程序,解決方法有一比較好的方法:
//更改預處理定義:
//項目->屬性->配置屬性->C?/?C++->預處理器->預處理器定義,增加_CRT_SECURE_NO_DEPRECATE
//這樣就可以解決vs2013報錯的問題了。

//1、關于運動目標檢測的方法總結
//查閱了相關的文獻,目前能夠實現運動物體檢測的方法主要有以下幾種:
//1)背景差分法:能完整快速地分割出運動圖像。其不足之處是易受光線變化影響,背景的更新是關鍵。不適用于攝像頭運動的情況;
//2)光流法:能檢測獨立運動的圖像,可用于攝像頭運動的情況,但是計算復雜耗時,較難實現實時監測;
//3)幀差法:受光線變化影響較小,簡單快速,但不能分割出完整的運動對象,需進一步運用目標分割算法。
//???還有一些改進的算法,主要致力于減少光照影響和檢測慢速物體變化。以上是大多數文獻中對這三種方法的評價,
//???由于是初次接觸,而且項目的需求是靜止相機,因此采用最簡單的方法:背景差分法。
//2、背景差分法實現步驟
//可將背景差分法的實現步驟總結如下:
//1)進行圖像的預處理:主要包括對圖像進行灰度化以及濾波。
//???灰度化的方法及其C語言實現可參考《Canny邊緣檢測算法原理及其VC實現詳解(二)》一文;
//???關于圖像濾波,通常可采用的方法有中值濾波、均值濾波以及高斯濾波等。
//???關于高斯濾波的實現詳見《高斯圖像濾波原理及其編程離散化實現方法》一文。
//2)背景建模:這是背景差法較為重要的第一步。
//???目前大多的思路都是根據前N幀圖像的灰度值進行區間統計從而得到一個具有統計意義的初始背景。
//???在第一次的實現過程中,采用第一幅圖片作為背景圖,這樣比較簡單。
//3)前景提取:將當前最新的圖像與背景做差,即可求得背景差圖,然后根據一定的方法對改圖進行二值化,
//???最終獲得運動前景區域,即實現圖像分割。

//所研究的運動檢測和背景更新方法實現的步驟如下:
//(1)開辟靜態內存,對圖像進行初始化準備采集;
//(2)采集圖像,定義參數k,作為圖像序列計數。采集第1幅圖像時,則根據第一幀的大小信息進行矩陣、圖像的初始化,
//并且將第一幀圖像進行灰度化處理,并轉化為矩陣,作為背景圖像及矩陣;如果k不等于1則把當前幀進行灰度化處理,
//并轉化為矩陣,作為當前幀的圖像及矩陣。用當前幀的圖像矩陣和背景幀的圖像矩陣做差算出前景圖矩陣并對其進行
//二值化以便計算它與背景幀差別較大的像素個數,也就是二值化后零的個數。
//當第一幀的異物大于1W個像數點則需要將當前幀存儲為第一幀,并且將系統的狀態轉為1——采集第二幀;
//第一幀和第二幀的異物都大于1W個像數點時,將當前幀存儲為第二幀,通過判斷第一幀和第二幀的差值來確定兩幀是否連續,
//若連續則將系統狀態轉為2——采集第三幀,若不連續則報警,并把系統狀態轉為0——采集背景幀;
//當第一幀和第二幀的異物都大于1W個像數點?而第三幀沒有時則報警;
//若連續3幀的異物都大于1W個像數點時,將當前幀存儲為第三幀,通過判斷第二幀和第三幀的差值來確定兩幀是否連續,
//若連續則將更新背景,若不連續則報警。然后把系統狀態轉為0——采集背景幀。
//注意其中有一個0-1-2-0....的狀態機。
//cvCopy的原型是:
//void?cvCopy(const?CvArr*?src?CvArr*?dst?const?CvArr*?mask?=?NULL);
//在使用這個函數之前,你必須用cvCreateImage()一類的函數先開一段內存,然后傳遞給dst。cvCopy會把src中的數據復制到dst的內存中。
//
//cvCloneImage的原型是:
//IplImage*?cvCloneImage(const?IplImage*?image);
//在使用函數之前,不用開辟內存。該函數會自己開一段內存,然后復制好image里面的數據,然后把這段內存中的數據返回給你。
//clone是把所有的都復制過來,也就是說不論你是否設置Roi?Coi等影響copy的參數,clone都會原封不動的克隆過來。
//copy就不一樣,只會復制ROI區域等。

#include?
#include?
#include?
#include?
#include?

////調用以下函數可以對運動目標尋找輪廓并繪制矩形框,但是效果不佳暫且就不找問題所在了
//CvMemStorage?*stor;
//CvSeq?*cont;
//void?DrawRec(IplImage*?pImgframe?IplImage*?pImgProcessed?int?MaxArea);

//main(int?argc?char?*argv[])中的兩個參數?argc表示參數個數,*argv則是具體的參數.
//默認情況下,project本身是作為第一個參數的(比如,我的應用輸出是test.exe,則argv[0]對應的值為test.exe的絕對路徑?
//-?D:\program?files\vs2012\vctest\debug\test.exe),即默認情況下argc的值為1(該值無需手動改變)?
//如果需設定其他參數,可以通過如下配置:
//<1>選擇PROJECT—>Properties—>Configuration?Properties—>Debugging—>Command?Arguments
//<2>在Command?Arguments中添加參數,假設?:?要設定argv[1]?=?”23”?argv[2]?=?”Hello”?
//那么輸入值23??Hello即可(兩個值之間空格隔開要傳空格就包括在“?“中)然后保存即可。運行之后可發現參數值已經改變
//中文版:菜單[項目]->屬性頁->配置屬性->調試,在[命令行參數]里填上即可。不同參數之前用空格隔開。

int?main(?int?arg

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????66560??2018-03-19?15:06??VideoDetection\Debug\VideoDetection.exe

?????文件?????588308??2018-03-19?15:06??VideoDetection\Debug\VideoDetection.ilk

?????文件????1928192??2018-03-19?15:06??VideoDetection\Debug\VideoDetection.pdb

?????文件?????209885??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\main.obj

?????文件?????650240??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\vc120.idb

?????文件????1249280??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\vc120.pdb

?????文件???????1884??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.log

?????文件????????744??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\cl.command.1.tlog

?????文件??????17906??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\CL.read.1.tlog

?????文件????????556??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\CL.write.1.tlog

?????文件???????2064??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\link.command.1.tlog

?????文件???????4956??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\link.read.1.tlog

?????文件????????534??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\link.write.1.tlog

?????文件????????172??2018-03-19?15:06??VideoDetection\VideoDetection\Debug\VideoDetection.tlog\VideoDetection.lastbuildstate

?????文件??????12636??2017-12-25?19:41??VideoDetection\VideoDetection\main.cpp

?????文件????2498886??2017-12-24?23:31??VideoDetection\VideoDetection\traffic.flv

?????文件???????4116??2017-12-25?11:58??VideoDetection\VideoDetection\VideoDetection.vcxproj

?????文件????????945??2017-12-25?11:53??VideoDetection\VideoDetection\VideoDetection.vcxproj.filters

?????文件????????380??2018-03-19?15:14??VideoDetection\VideoDetection\VideoDetection.vcxproj.user

?????文件???15335424??2018-03-19?15:52??VideoDetection\VideoDetection.sdf

?????文件????????988??2017-12-25?11:51??VideoDetection\VideoDetection.sln

????..A..H.?????24576??2018-03-19?15:52??VideoDetection\VideoDetection.v12.suo

?????目錄??????????0??2018-03-19?15:14??VideoDetection\VideoDetection\Debug\VideoDetection.tlog

?????目錄??????????0??2018-03-19?15:14??VideoDetection\VideoDetection\Debug

?????目錄??????????0??2018-03-19?15:14??VideoDetection\Debug

?????目錄??????????0??2018-03-19?15:14??VideoDetection\VideoDetection

?????目錄??????????0??2018-03-19?15:52??VideoDetection

-----------?---------??----------?-----??----

?????????????22599232????????????????????27



............此處省略0個文件信息

評論

共有 條評論