一、介紹

     攝像頭圖像采集處理在業(yè)界有著多種成熟的方案。從老的DirectShow、Grabber技術,到新的Windows Media Foundation框架,網(wǎng)絡上都有著豐富的參考資料。OpenCV庫里面甚至提供了非常簡潔的接口,用戶只要一兩行代碼即可實現(xiàn)數(shù)據(jù)采集、編解碼等功能,使用起來甚是方便。但是,如果把數(shù)據(jù)采集的任務放到我們自己的程序中來實現(xiàn)的話,CPU的占用率會比較高。這在某些情況下不太可取。雖然可以實現(xiàn),但是在客戶端使用時效率非常低下。而公司恰好有一項開發(fā)任務:要求采集到攝像頭數(shù)據(jù)后,對圖像數(shù)據(jù)進行各種變換處理,然后傳遞給底層驅動程序,實現(xiàn)虛擬攝像頭功能。具體的效果如果CamMask或者CamTwist:

 seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓

     嘗試過自己寫代碼采集攝像頭數(shù)據(jù),然后再進行圖像處理。但是換了多種方式都不太理想。要么CPU占用率達到百分之五六十,要么內存占用率達到六七百兆。采用DirectShow Filter似乎就成了唯一的一種方式。實際測試下來,3K分辨率的視頻CPU占用率保持在30%上下,內存在150M上下。這個數(shù)據(jù)還是可以接受的。

二、DirectShow基礎

    DirectShow是Microsoft DirectX技術體系中的一員,其他成員還包括DirectSound, DirectInput, DirectSetup, DirectX Graphics等。DirectShow技術是微軟為了解決多媒體應用開發(fā)中的一些難題而提出的。例如:如何保證數(shù)據(jù)量巨大的多媒體數(shù)據(jù)處理的高效性?如何讓音視頻時刻保持同步?如何處理各種式樣的媒體格式問題?如何支持目標系統(tǒng)中不可預知的硬件?DirectShow的設計初衷就是盡量讓應用程序開發(fā)人員從復雜的數(shù)據(jù)傳輸、硬件差異、同步性等工作中解脫出來,總體應用框架和底層工作由DirectShow來完成。DirectShow技術的總體運行流程如下:

seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式