日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術》雜志
[導讀]摘要:為了實現(xiàn)交通視頻信息的感知和提取,采用基于MFC并使用OpenCV進行視頻處理的可視化編程方法,通過構(gòu)造一個包含常見操作的C++類,同時以OpenCV中的相關函數(shù)為接口,建立了一個視頻處理程序架構(gòu),來實現(xiàn)MFC應用程序?qū)penCV算法的融合,以智能地感知和處理交通視頻中的信息。

引言

計算機視覺技術是通過對常見的圖像、視頻進行操作來提取其中信息的一種技術。OpenCV是Intel公司開發(fā)的一款開源圖像視頻處理庫,使用OpenCV中封裝好的庫函數(shù),可以很方便地對視頻中的圖像進行提取、保存、變換等形態(tài)學操作,這種技術在很大程度上簡化了開發(fā)的進程孔

由于OpenCV只提供相關處理的算法,而程序操作界面略顯不足,所開發(fā)的程序進行參數(shù)設置不方便,因此,在實際應用層面,開發(fā)者通常將OpenCV函數(shù)庫與MFC(MicrosoftFoundationClasses是微軟基礎類庫,可提供Windows編程的框架)相結(jié)合進行開發(fā)叫這種使用MFC構(gòu)建Win32程序框架,并使用OpenCV構(gòu)建算法的各取所長方法,對于軟件的實用性和可操作性具有重大意義。

本文總結(jié)出了一套將OpenCV算法應用于Win32對話框程序中的標準方法,該方法可以通過定義C++類創(chuàng)建對象,來輕松實現(xiàn)對公路交通視頻中交通參數(shù)的提取。

1視頻車輛檢測器的基本功能

本程序以MFC+OpenCV的方式進行開發(fā),并以實用為準則,通過可視化的界面和按鈕的方式來實現(xiàn)原始視頻的播放,視頻信息分析,自定義觀測點和車流量計數(shù)周期,交通參數(shù)的測量,統(tǒng)計結(jié)果的存儲和重現(xiàn)等功能。其軟件各個功能的關系如圖1所示。

基于OpenCV的交通視頻感知處理程序框架

圖1交通視頻檢測系統(tǒng)功能架構(gòu)圖

2視頻車輛檢測器的技術實現(xiàn)

要實現(xiàn)上述系統(tǒng),主要有兩方面問題:一是如何構(gòu)建視頻對象,并通過操作視頻對象來對視頻信息進行提?。欢侨绾螌σ曨l進行操作來實現(xiàn)上述的各個功能。

2.1創(chuàng)建視頻對象

使用創(chuàng)建對象的方式操作視頻時,首先要定義視頻的類。在視頻處理中,通常先提取出一幀一幀的圖像,然后對所提取的圖像進行處理,再將其保存或者播放至應用程序的控件中。跟據(jù)此原理,可定義一個視頻的類,類中包含上述過程所涉及的屬性和操作方法,其代碼及注釋如下(代碼中視頻類的名稱為CVideo):

classCVideo{

public:

CVideo();//構(gòu)造函數(shù)

virtual?CVideo();//析構(gòu)函數(shù)

//以下為數(shù)據(jù)成員

CvCapture*pCapture;

//OpenCV用來讀取視頻的結(jié)構(gòu)體,存儲待讀取的視頻

Ipllmage*pFrame;

//OpenCV用來存儲圖像的結(jié)構(gòu)體,存儲當前視頻幀的圖像

Ipllmage*cFrame;//存儲當前幀處理后的圖像

HDChDC1;

//定義設備上下文的句柄,用來播放原始視頻(可選)

CRectrect1;

//定義一個矩形區(qū)域,用來設定原始視頻的ROI區(qū)域

HDChDC2;

//定義設備上下文的句柄,用來播放處理后的視頻

CRectrect2;

//定義一個矩形區(qū)域,用來設定處理后視頻的ROI區(qū)域CStringm_file;//字符串,存儲視頻的路徑和名稱


intm_fps;

//存儲視頻中每秒的幀數(shù),便于進行播放速度的控制

/*以下為成員函數(shù)(限于篇幅,本文未提供成員函數(shù)的所有代碼,讀者可以根據(jù)注釋參考OpenCV文檔自行編寫)*/

voidPlay(intpos);

//播放pos位置的幀,將此幀的圖像放入pframe中,將pframe顯示在hDC1中

voidConvertedplay();

//直接將當前幀處理后的圖像cframe顯示在hDC2中

voidClosefile();

//關閉文件,釋放當前視頻所占的內(nèi)存

boolOpenfile(CStringfile);

/*根據(jù)儲存在數(shù)據(jù)成員file中的路徑打開視頻文件,同時獲取視頻的幀總數(shù)和fps,將其存儲在該類的數(shù)據(jù)成員中*/};

定義好視頻的類之后,便可以通過此類所定義的對象中的各個數(shù)據(jù)和方法對視頻進行常見的操作。

2.2視頻對象的處理

在可視化的界面中通??赏ㄟ^按鈕觸發(fā)事件。假設現(xiàn)在定義了一個myvide。的對象,那么,就可以用以下方法按下相應按鈕來執(zhí)行所需功能。

打開視頻。將對話框中播放原始視頻的設備的ID和播放處理后的視頻設備ID分別讀入myvideo相應的成員中;通過MFC中的CFileDialog類讀取文件,將文件的路徑存儲在myvideo.m_file中,調(diào)用myviedo.Openfile()方法打開視頻。初始化當前播放位置,并初始化對話框。此時,該視頻將處于待播放和待轉(zhuǎn)換的狀態(tài)。

播放和分析視頻。播放和分析的過程可以通過定時器來實現(xiàn)。當點擊播放后,設置并啟動定時器。定時器每隔一定時間中斷一次,其中斷頻率通過視頻對象中的myvideo.m_fps調(diào)節(jié)。定時器在一個中斷中,首先使用myvideo.play()函數(shù)將當前幀推送至原始視頻播放設備中播放,并將當前幀(即myvideo.pframe)放入自己定義的圖像分析處理函數(shù)中進行處理,同時將處理結(jié)果放至myvideo.cframe中,然后使用myvideo.Convertedplay()函數(shù)將處理后的幀推送到處理后的視頻播放設備中播放,最后幀位置加1。至此,一個中斷執(zhí)行完畢。其流程圖如圖2所示。

基于OpenCV的交通視頻感知處理程序框架

圖2—個定時器中斷中播放和處理視頻流程圖

停止播放。當點擊停止播放按鈕時,調(diào)用myvideo.Closefile()函數(shù)關閉文件,釋放內(nèi)存。同時還要銷毀定時器,清理相關中間變量。

定義觀測線和計數(shù)周期。為了實現(xiàn)車輛數(shù)量的測量,必須首先定義車輛的觀測線。觀測線的設定可用在背景圖像上點擊的方式來實現(xiàn)。記錄點擊下的觀測線兩端的坐標,即可確定觀測線的位置,當有車輛越過觀測線時,對車輛數(shù)加1。每一個計數(shù)周期過后,輸出本周期內(nèi)車流量的檢測結(jié)果。

檢測結(jié)果的顯示。檢測的車流量統(tǒng)計結(jié)果可以通過VC++中的一個list控件呈現(xiàn)出來[71。每隔所設定的計數(shù)周期時間,則將本時間段檢測的結(jié)果條目加入list控件之中,以通過表格的方式將結(jié)果展現(xiàn)出來。

檢測結(jié)果的導出。通過按鍵操作程序可以將車輛檢測結(jié)果導出為txt格式的文本文件或者excel表格保存,以方便統(tǒng)計

3視頻處理算法

在檢測系統(tǒng)中必須要設計良好的識別算法來提取交通信息,以下將對本系統(tǒng)所使用的視頻處理算法進行簡要介紹。當提取出一幀原始圖像之后,首先使用高斯背景建模,得到背景圖像[8],再用當前圖像減去背景圖像并進行如圖3所示的變換,再提取出運動車輛的二值圖像,只要識別出車輛的輪廓就可以實現(xiàn)對車輛的跟蹤,最后將跟蹤結(jié)果放入處理后的圖像中[9],這一系列的處理可放在定時器中斷的圖像處理函數(shù)中。在此處理過程中,每一步的處理方法和參數(shù)都必須經(jīng)過反復的試驗和測試,才能達到最好的效果。其算法流程如圖3所示。

基于OpenCV的交通視頻感知處理程序框架

圖3視頻圖像處理算法流程圖

4實驗結(jié)果

此程序通過構(gòu)建C++的視頻類并定義視頻對象,可完成交通視頻的處理工作。同時,利用此框架,可以快速搭建交通視頻處理的Win32應用程序。在此框架上進行合理的擴展,可以勝任當前大部分交通視頻的參數(shù)提取工作。圖4所示是基于MFC+OpenCV框架的交通流量檢測系統(tǒng)軟件界面圖。

基于OpenCV的交通視頻感知處理程序框架

圖4基于MFC+OpenCV框架的交通流量檢測系統(tǒng)

圖4中,左上角的播放控件播放原始視頻,右上角用來播放處理后的視頻,下方為輸出結(jié)果的控件。原始視頻和處理后的視頻播放同步進行,當車輛接近所設定的計數(shù)線時,程序使用矩形框?qū)⑵淙Τ?;越過計數(shù)線后,計數(shù)器加1并將數(shù)字在旁邊顯示出來。

5結(jié)語

本文介紹了一種基于MFC和OpenCV的交通視頻處理程序。實驗結(jié)果表明,此設計方法具有較高的穩(wěn)定性,可以達到預期的效果。但是,本系統(tǒng)在架構(gòu)和算法方面,仍然具有需要更進一步完善的地方,具體如下:

(1)當視頻上有其他因素影響時(如車輛陰影、攝像機微小抖動等),由于軟件中并沒有加入相關消除的算法,檢測結(jié)果會受到影響,因此,在進一步處理中,應當加入去陰影、消抖等算法。

(2)公路車輛擁堵時,不能很好識別出背景,干擾較大。

(3)在夜晚時,由于光照、車燈等條件的影響,檢測算法不能對車輛進行很好識別。在進一步改進中,應該加入相關的處理算法,也可以通過檢測車燈來檢測車輛數(shù)。

(4)車輛重疊時,有可能將兩輛車識別成為一輛。

(5)識別準確率有待提高,計數(shù)方法也有待改進。

20210917_61443242eb7b4__基于0penCV的交通視頻感知處理程序框架

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉