劉 平,黃 平
(華南理工大學(xué) 機(jī)械與汽車(chē)工程學(xué)院,廣東 廣州510640)
自1795年德國(guó)學(xué)者Bozzini用金導(dǎo)管制成直腸鏡以來(lái),經(jīng)歷了硬式內(nèi)鏡、軟式內(nèi)鏡[1]、胃內(nèi)照相機(jī)、纖維內(nèi)鏡及電子內(nèi)鏡等階段。內(nèi)窺鏡的研究與發(fā)展,已經(jīng)在醫(yī)療儀器中占據(jù)重要位置。消化道疾病困擾著全球無(wú)數(shù)患者,傳統(tǒng)的電子內(nèi)窺鏡采用機(jī)械式插入方法,在檢測(cè)的時(shí)候存在重大的缺陷[2]。小腸是消化道最長(zhǎng)的器官,具有彎曲和游離的特點(diǎn),普通設(shè)備只能達(dá)到小腸0.8~1m的地方,再住下會(huì)給病人造成極大的痛苦,許多患者因恐懼而放棄檢查[3]。
隨著微創(chuàng)、無(wú)創(chuàng)醫(yī)學(xué)理念的普及,醫(yī)療 “人性化”被提升到了一定高度,口服式膠囊內(nèi)窺鏡作為新興的消化道疾病診斷系統(tǒng)得到了飛速發(fā)展。目前,以色列、日本、韓國(guó)和中國(guó)等都在致力于這方面的研究。膠囊內(nèi)窺鏡是多種技術(shù)相結(jié)合的綜合系統(tǒng),它集微機(jī)電系統(tǒng) (MEMS)、光電工程、無(wú)線(xiàn)通訊系統(tǒng)和生物醫(yī)學(xué)等于一身,它包含無(wú)線(xiàn)圖像傳輸、照明、磁場(chǎng)驅(qū)動(dòng)等多個(gè)子系統(tǒng)[4]。病人檢查時(shí)服下膠囊,膠囊借助消化道的蠕動(dòng)在消化道內(nèi)運(yùn)動(dòng),對(duì)胃腸道進(jìn)行拍攝取樣,同時(shí)通過(guò)無(wú)線(xiàn)傳輸?shù)姆绞綄⑷拥玫降膱D像傳輸至體外接收裝置,為醫(yī)生提供診療依據(jù)。
基于USB2.0高速接口,本系統(tǒng)從圖像數(shù)據(jù)的實(shí)時(shí)傳輸入手,運(yùn)用了DirectShow接口技術(shù),通過(guò)VC++軟件開(kāi)發(fā)平臺(tái)開(kāi)發(fā)出用于圖像處理的軟件,將從膠囊內(nèi)窺鏡的無(wú)線(xiàn)發(fā)設(shè)模塊發(fā)射出來(lái)的圖像信息直接顯示在電腦屏幕上,同時(shí)將圖像信息直接存儲(chǔ)在計(jì)算機(jī)硬盤(pán)上進(jìn)行專(zhuān)門(mén)的處理。
整個(gè)系統(tǒng)的設(shè)計(jì)分為軟件和硬件兩大部分。硬件部分主要包括:基于OV6920的體內(nèi)無(wú)線(xiàn)窺視膠囊[5]、調(diào)頻接收器、天敏UV200視頻采集棒、計(jì)算機(jī)。計(jì)算機(jī)終端軟件利用自主開(kāi)發(fā)的膠囊內(nèi)窺鏡圖像處理軟件。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
檢測(cè)時(shí),被病人服下進(jìn)入消化道的膠囊,利用內(nèi)置的攝像頭對(duì)消化道特定位置和非特定位置進(jìn)行拍攝,膠囊內(nèi)鏡OV6920圖像傳感器將光信號(hào)轉(zhuǎn)化成視頻信號(hào)。視頻信號(hào)與發(fā)射電路內(nèi)部產(chǎn)生的高頻載波進(jìn)行調(diào)制,調(diào)制后的復(fù)合視頻信號(hào)再通過(guò)緩沖放大送至交天線(xiàn),轉(zhuǎn)變成電磁波的形式向外發(fā)射[6]。調(diào)頻接收器將無(wú)線(xiàn)電磁波信號(hào)還原為復(fù)合視頻信號(hào),復(fù)合視頻信號(hào)通過(guò)UV200視頻采集棒轉(zhuǎn)變成計(jì)算機(jī)可以識(shí)別的信號(hào)之后,經(jīng)過(guò)USB接口傳給計(jì)算機(jī)。圖像采集流程圖如圖2所示。
圖2 圖像采集流程
計(jì)算機(jī)接收到視頻數(shù)據(jù)流之后,通過(guò)基于DirectShow的應(yīng)用程序,將視頻信號(hào)在顯示器上進(jìn)行顯示,從而可以對(duì)膠囊內(nèi)窺鏡得到的視頻圖像進(jìn)行實(shí)時(shí)監(jiān)測(cè),同時(shí)也可以將視頻圖像以AVI的格式進(jìn)行存儲(chǔ),以供后需之用。對(duì)于存儲(chǔ)在本地的AVI視頻圖像,可以運(yùn)用基于VC的膠囊內(nèi)窺鏡圖像處理軟件進(jìn)行相關(guān)處理。
軟件設(shè)計(jì)是本系統(tǒng)的另一個(gè)重點(diǎn),而軟件設(shè)計(jì)的關(guān)鍵在于解決視頻圖像的采集。
Windows系統(tǒng)環(huán)境下有3種視頻采集方式,分別是基于VFW的視頻采集方式、基于DirectShow的視頻采集方式和基于SDK軟件開(kāi)發(fā)包的視頻采集方式。
VFW是由Microsoft公司1992年推出的基于Windows的視頻軟件工作平臺(tái),它提出了AVI文件標(biāo)準(zhǔn),其中規(guī)定了視頻和音頻交錯(cuò)存放的格式。VFW為用戶(hù)提供了一整套應(yīng)用程序接口 (API),通過(guò)開(kāi)發(fā)工具,用戶(hù)可以完成視頻采集、壓縮、解壓縮、回放和編輯程序[7]。但VFW處理效率低,采集質(zhì)量差。
SDK[8]是由視頻采集卡廠(chǎng)家所提供的用于開(kāi)發(fā)視頻監(jiān)視系統(tǒng)的一組庫(kù)函數(shù),通過(guò)使用SDK庫(kù)函數(shù),用戶(hù)可以無(wú)需了解視頻壓縮、視頻回放、視頻網(wǎng)絡(luò)與視頻存盤(pán)操作等技術(shù),同樣可以進(jìn)行視頻相關(guān)的程序開(kāi)發(fā)。但SDK的缺點(diǎn)在于兼容性差,不同采集卡廠(chǎng)商提供的SDK通常沒(méi)辦法兼容,所以編寫(xiě)的程序無(wú)法移植并應(yīng)用到新的操作環(huán)境當(dāng)中。
DirectShow和DirectX同時(shí)發(fā)布,它是建立在Direct-Sound與DirectDraw組件基礎(chǔ)之上的多媒體應(yīng)用程序開(kāi)發(fā)工具包。DirectShow對(duì)視頻的捕捉、回放和音頻視頻采集等高性能求的多媒體的應(yīng)用提供了強(qiáng)大支持。DirectShow作為完整的基于COM的應(yīng)用程序,為其它符合COM組件接口的所有第三方開(kāi)發(fā)的組件對(duì)象都能夠提供相應(yīng)的視頻操作的支持[9]。DirectShow建立在組件對(duì)象的基礎(chǔ)上,由許多組件模塊組成,使用DirectShow能夠簡(jiǎn)單、高速地對(duì)流媒體文件進(jìn)行處理。因此通過(guò)對(duì)比以3種視頻采集方法,DirectShow無(wú)疑更適合手于開(kāi)發(fā)Windows系統(tǒng)環(huán)境下圖像采集系統(tǒng)。
軟件開(kāi)發(fā)平臺(tái)選用功能強(qiáng)大的Visual C++應(yīng)用程序開(kāi)發(fā)平臺(tái),Visual C++是C++語(yǔ)言的集成開(kāi)發(fā)環(huán)境,同時(shí)它與Win32緊密相連,利用Visual C++開(kāi)發(fā)平臺(tái)可以完成各種應(yīng)用程序的開(kāi)發(fā),從底層軟件一直到客戶(hù)端軟件都可以通過(guò)應(yīng)用Visual C++來(lái)完成開(kāi)發(fā)。而且Visual C++調(diào)試功能的強(qiáng)大,為大型、復(fù)雜軟件的開(kāi)發(fā)提供了相當(dāng)有效的排錯(cuò)手段。隨著Visual C++軟件版本的日漸升級(jí),它的功能變得越來(lái)越強(qiáng)大,幾乎延伸到了Windows應(yīng)用的各個(gè)層面,Visual C++日漸成了Windows系統(tǒng)環(huán)境中最強(qiáng)大的應(yīng)用程序[10]。
基于OV6920的無(wú)線(xiàn)內(nèi)窺鏡膠囊,設(shè)計(jì)的軟件主要具有如下功能:
(1)對(duì)膠囊內(nèi)窺鏡的拍攝進(jìn)行實(shí)時(shí)顯示,并能將圖像以AVI格式存放到硬盤(pán)上;
(2)軟件支持多種格式視頻、音頻文件的讀取,能夠進(jìn)行暫停、回放、慢速播放及快速播放;
(3)對(duì)于有疑點(diǎn)的圖像,可以進(jìn)行圖片截取,支持多幅圖片連續(xù)截取、同時(shí)預(yù)覽,把有需要的圖片以BMP的格式進(jìn)行保存;
(4)能夠?qū)D片進(jìn)行相關(guān)的圖像處理,并添加相應(yīng)的文字描述;
(5)實(shí)現(xiàn)打印功能??梢詫D片和相關(guān)的文字描述,通過(guò)打印機(jī)打印出來(lái)。
具體軟件運(yùn)行流程圖如圖3所示。
圖3 軟件運(yùn)行流程
DirectShow是作為一套基于COM的編程接口的開(kāi)放性的應(yīng)用框架,兼?zhèn)渑c底層代碼和高層應(yīng)用程序打交道的功能。圖4所示為DirectShow的系統(tǒng)框架圖[11]。我們可以看到,其中最大的一塊就是DirectShow系統(tǒng)[12],“流水線(xiàn)”是它的基本工作原理,通過(guò)Filter Graph Manager統(tǒng)一處理整個(gè)數(shù)據(jù)流處理過(guò)程。其中Ring0用戶(hù)級(jí)應(yīng)用層包括顯卡、聲卡、VFW采集設(shè)備、MPEG2硬件解碼器、WDM采集設(shè)備等;而Ring3特權(quán)級(jí)別的應(yīng)用層提供了統(tǒng)一規(guī)范的COM接口。通過(guò)這種分離底層硬件設(shè)備和高層應(yīng)用程序的方式可以很方便地編程實(shí)現(xiàn)從設(shè)備獲得多媒體的數(shù)據(jù)[13]。
圖4 DirectShow的系統(tǒng)框架
DirectShow通過(guò)Filter[14]與各式各樣的設(shè)備進(jìn)行通信。Filter是一個(gè)COM組件,是完成DirectShow處理過(guò)程的基本單元[15]。按照功能劃分,F(xiàn)ilter主要可分成下面3種類(lèi)型:
(1)Source filter(源過(guò)濾器):通常數(shù)據(jù)來(lái)源有網(wǎng)絡(luò)、文件、攝相機(jī)等等,而源過(guò)濾器主要用于負(fù)責(zé)引入數(shù)據(jù)到過(guò)濾器圖表中;
(2)Transform filter(交換過(guò)濾器):數(shù)據(jù)流的獲取以及數(shù)據(jù)處理如:格式分離與合成、編碼與解碼、壓縮與解壓縮由交換過(guò)過(guò)濾器來(lái)完成和實(shí)現(xiàn);
(3)Randering filter(提交過(guò)濾器):作為過(guò)濾器圖表里的最后一級(jí)負(fù)責(zé)接收數(shù)據(jù)并把數(shù)據(jù)提交給顯卡、聲卡等外部設(shè)備。
(1)構(gòu)建FilterGraph
本系統(tǒng)中,圖5是Filter Graph[16]結(jié)構(gòu)圖。如圖6所示是它的執(zhí)行流程圖。
(2)VC++開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)源代碼 (只給出主要代碼)
// 用于創(chuàng)建filter graph組件
HRESULT hl;
//創(chuàng)建GraphBuilder接口
hl=CoCreateInstance(
CLSID_FilterGraph,//創(chuàng)建標(biāo)識(shí)符
NULL,CLSCTX _ ALL,IID _IGraphBuilder,(LPVOID*)&m_pGraphl);
//創(chuàng)建CaptureGraphBuilder2接口
hl=CoCreateInstance(
CLSID_CaptureGraphBuilder2,//創(chuàng)建標(biāo)識(shí)符
NULL,CLSCTX _ALL,IID _#ICaptureGraph-Builder2,(LPVOID*)&m_pCapturel);
//獲得所需Video Window接口
hl=m _pGraphl->QueryInterface (IID _IVideoWindow,//指明需要查詢(xún)的接口的IID
(LPVOID*)&m_pVW);
//獲得所需MediaControl接口
hl=m _pGraphl->QueryInterface (IID _IMediaControl,//指明需要查詢(xún)的接口的IID
(void**)&m_pMC);
//獲得所需BasicVideo接口
hl=m _pGraphl->QueryInterface (IID_IBasicVideo,//指明需要查詢(xún)的接口的IID
(void**)&mBasicVideo);
其中VideoWindow接口用于視頻連接視頻渲染窗口,MediaControl接口用于控制流媒體數(shù)據(jù),如:播放、停止等。
創(chuàng)建好filter graph之后,還要?jiǎng)?chuàng)建設(shè)備枚舉器filter用于USB視頻信號(hào)的檢測(cè),實(shí)現(xiàn)如下:
CComPtr<ICreateDevEnum>pDeviceEnumLeo=NULL;
//創(chuàng)建所需設(shè)備枚舉器
hl=CoCreateInstance (CLSID _SystemDeviceEnum,//創(chuàng)建標(biāo)識(shí)符
NULL,CLSCTX _ALL,IID _ICreateDevEnum,(LPVOID*)&pDeviceEnumLeo);
CComPtr<IEnumMoniker>pClassEnumLeo=NULL;
//用于創(chuàng)建設(shè)備種類(lèi)枚舉器
hl = pDeviceEnumLeo-> CreateClassEnumerator(CLSID_VideoInputDeviceCategory,//創(chuàng)建標(biāo)識(shí)符
&pClassEnumLeo,0);
在創(chuàng)建filter的過(guò)程中,如果創(chuàng)建失敗,程序通過(guò)return hl進(jìn)行返回,并具對(duì)話(huà)框報(bào)警。
程序運(yùn)行過(guò)程中,F(xiàn)ilter之間利用Sample數(shù)據(jù)結(jié)構(gòu)傳輸數(shù)據(jù),通過(guò)一些接口函數(shù)可以獲得Sample數(shù)據(jù),并獲得數(shù)據(jù)的內(nèi)在緩沖地址,對(duì)內(nèi)存沖進(jìn)行處理,轉(zhuǎn)化成我們需要的AVI數(shù)據(jù)流,并進(jìn)行保存。
設(shè)備種類(lèi)枚舉器根據(jù)不同種類(lèi)的枚舉器,例如,視頻壓縮、視頻播放對(duì)每一個(gè)設(shè)備返回一個(gè)獨(dú)立的名稱(chēng) (moniker)。本系統(tǒng)視頻壓縮存儲(chǔ)過(guò)程如下:
(1)創(chuàng)建枚舉器組件,CLSID為DLSID_SystemE-num;
(2)利用ICreateDevEnumCreateClassEnuMerator可以獲取某一種類(lèi)的枚舉器,該函數(shù)可以返回一個(gè)IEnumMoniker接口指針,成功時(shí)返回S_OK,反之返回S_FALSE。
(3)接著通過(guò)IEnumMoniker的Next方法,枚舉所有的moniker,并且返回一個(gè)IMoniker接口指針。
pClassEnuml->Next (1, &pMoniker, &cFetched) =S_OK;
(4)相應(yīng)的設(shè)備名稱(chēng)可以利用pMonike的BindToStorage方法獲得。
pMoniker->BindToStorage (0,0,IID _IProperty-Bag,(LPVOID*)&pMyProp);
VARIANT varName;
varName.vt= VT_BSTR;
pMyProp->Read (L"FriendlyName",&varName,0;
(5)通過(guò)調(diào)用IMoniker::BindToObject函數(shù)生成綁定到設(shè)備上的filter。然后利用IFilterGraph::AddFilter將filter加入到Graph圖中。
pMoniker-> BindToObject (0,0,IID _IBaseFilter,//綁定設(shè)備
(void**)&pCompressl);
m_pGraphl->AddFilter (pCompressl,L"com");
(6)設(shè)置AVI輸出文件,本系統(tǒng)是將AVI以當(dāng)前時(shí)間命名保存的,所以在設(shè)置AVI輸出文件之前,應(yīng)該先得到文件名。
//獲取系統(tǒng)時(shí)間給ts
CString ts;
SYSTEMTIME t;
GetLocalTime (&t);
ts.Format("%.2d年%.2d月%.2d日%.2d%.2d%.2d 秒.avi",t.wYear,t.wMonth,t.wDay,t.wHour,t.Minute,t.wSecond);
得到文件名之后調(diào)用SetOuptFileName設(shè)置輸出文件。
m _ pCapturel-> SetOutputFileName(&MEDIASUBTYPE _ Avi,ts.AllocSysString ( ),&pMyMux,NULL);
(7)最后連接壓縮模塊Filter將視頻壓縮存儲(chǔ)。
m_pCapturel->RenderStream (&PIN_CATEGORY _CAPTUREL,//設(shè)置類(lèi)型
&MEDIASUBTYPE_Video,//設(shè)置媒體類(lèi)型pMySrcFilter,pCompressl,pMyMux);
本系統(tǒng)硬件實(shí)物圖如圖7所示,其中,1為UV200視頻采集棒;2為高頻接收器;3為OV6920膠囊。
連接好硬件系統(tǒng)之后,便可以進(jìn)行軟件系統(tǒng)的圖像采集。軟件運(yùn)行界面如圖8所示。
如圖8所示,1是一個(gè)靜態(tài)圖片框?qū)ο螅糜谝曨l預(yù)覽;2是一個(gè)列表框,用于顯示截取的圖片;3是一組按扭控件,用于控制視頻流的播放、暫停等。
點(diǎn)擊 “攝像”按扭控件,會(huì)彈出視頻采集對(duì)話(huà)框,此時(shí)便可以實(shí)現(xiàn)視頻圖像的實(shí)時(shí)監(jiān)測(cè),點(diǎn)擊 “開(kāi)始錄像”按扭控件,視頻流就會(huì)開(kāi)始以AVI的格式保存到程序默認(rèn)的件夾中,如圖9所示。
圖9 視頻采集對(duì)話(huà)框
對(duì)于本地的視頻文件,同樣可以通過(guò)軟件進(jìn)行預(yù)覽和截圖,只要在運(yùn)行軟件開(kāi)始的時(shí)候單擊 “打開(kāi)”按扭,找到想要打開(kāi)的視頻文件,單擊確實(shí)就可以方便地進(jìn)行播放,軟件支持拖拽播放,可以直接將文件直接拖進(jìn)軟件界面進(jìn)行播放。同時(shí)可以通過(guò) “捕獲”按扭進(jìn)截圖,而截取的圖片將會(huì)依次顯示在圖像列表框中。如圖10所示。
根據(jù)需要,可以將把截取的圖片以BMP的格式進(jìn)行保存。
圖10 視頻文件播放
本文通過(guò)系統(tǒng)地分析膠囊內(nèi)窺鏡圖像信息由產(chǎn)生、傳遞到接收的原理和過(guò)程,設(shè)計(jì)了合理的硬件采集系統(tǒng),整個(gè)硬件系統(tǒng)是以現(xiàn)有基于OV6920的體內(nèi)無(wú)線(xiàn)窺視膠囊為基礎(chǔ)而設(shè)計(jì)的。在軟件設(shè)計(jì)方面,運(yùn)用DirectShow采集原理,通過(guò)Visual C++應(yīng)用程序開(kāi)發(fā)平臺(tái)上開(kāi)發(fā)出基于DirectShow的圖像采集及處理軟件。通過(guò)最后的測(cè)試,整個(gè)系統(tǒng)成功實(shí)現(xiàn)了對(duì)視頻圖像的實(shí)時(shí)監(jiān)測(cè),可以將膠囊內(nèi)窺鏡所拍攝的圖像顯示到計(jì)算機(jī)上,并成功地將圖像的信息和數(shù)據(jù)以AVI格式文件保存到計(jì)算機(jī)上。
[1]SHEN Jian.Research of capsule endoscope system [D].Nanjing:Nanjing University of Aeronautics and Astronautics,2006(in Chinese).[沈健.膠囊內(nèi)窺鏡系統(tǒng)的研究 [D].南京:南京航空航天大學(xué),2006.]
[2]LIU Yan.Research and development of the image work station of the wireless endos-cope of alimentary canal[D].Chongqing:Chongqing University,2005 (in Chinese). [劉艷.消化道無(wú)線(xiàn)內(nèi)窺鏡之影像工作站的研究與開(kāi)發(fā) [D].重慶:重慶大學(xué),2005.]
[3]ZHU Jing.The database research of wire-less endoscope system used in imaging workstation [J].Chinese Medical Information,2008,14 (10):10-14 (in Chinese).[朱婧.無(wú)線(xiàn)內(nèi)窺鏡系統(tǒng)的圖像工作站的數(shù)據(jù)庫(kù)研究 [J].中國(guó)醫(yī)療器械息,2008,14 (10):10-14.]
[4]CHEN Liang.Research on the wireless image transmission system of capsule endoscope[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2007 (in Chinese). [陳亮.膠囊內(nèi)窺鏡無(wú)線(xiàn)圖像傳輸系統(tǒng)研究 [D].南京:南京航空航天大學(xué),2007.]
[5]LIU Jianqing,HUNAG Ping.Study on the design and experiment of wireless in body based on OV6920[J].Machinery Design & Manufacture,2010,6 (6):183-185 (in Chinese).[劉建青,黃平.基于OV6920體內(nèi)無(wú)線(xiàn)窺視膠囊設(shè)計(jì)與實(shí)驗(yàn)研究 [J].機(jī)械設(shè)計(jì)與制造,2010,6 (6):183-185.]
[6]CHEN Yingjun.Design and experimental research about a capsule wireless endoscope controlled by magnetic flesh [D].Guangzhou:South China University of Technology,2007 (in Chinese).[陳英俊.磁控人體膠囊式無(wú)線(xiàn)內(nèi)窺鏡的設(shè)計(jì)與實(shí)驗(yàn)研究 [D].廣州:華南理工大學(xué),2007.]
[7]LI Keyi,LIU Zhifang,ZHU Huanjuan.Study of video and audio collection method based on VFW [J].Modern Agricultural Science and Technology,2010 (16):40-41 (in Chinese).[李可一,劉志芳,朱環(huán)娟.基于VFW的視、音頻采集方法的研究 [J].現(xiàn)代農(nóng)業(yè)科技,2010 (16):40-41.]
[8]CHEN Guojian,YOU Liang,ZHANG Jianhui,et al.Visual C++Bible[M].Beijing:Publishing House of House of Electronic Industry,2011:3(in Chinese).[陳國(guó)建,游梁,張建輝,等.Visual C++寶典 [M].北京:電子工業(yè)出版社,2011:3.]
[9]XIE Qubo,WANG Liusen,XIA Dingchun.The achieve of image acquisition based on DirectShow [J].Software Guide,2010,9 (6):183-84 (in Chinese). [謝屈波,王六森,夏定純.基于DirectShow的圖像采集的實(shí)現(xiàn) [J].軟件導(dǎo)刊,2010,9 (6):183-84.]
[10]PAN Aimin,WANG Guoyin.Inside visual C++ [M].Beijing:Tsinghua University Press,2009:3 (in Chinese). [潘愛(ài)民,王國(guó)印.Visual C++技術(shù)內(nèi)幕 [M].北京:清華大學(xué)出版社,2009:3.]
[11]GUO Hao.Implementation of video capture based on Direct-Show technology [J].Fire Control Radar Technology,2008,37 (2):98-98 (in Chinese). [郭昊.基于 DirectShow 技術(shù)實(shí)現(xiàn)視頻采集 [J].火控雷達(dá)技術(shù),2008,37 (2):98-98.]
[12]ZHAO Dezhi,WU Jie,DING Qiulin.Real-time video capture and compression based on DirectShow [J].Computer Technology and D-velopment,2006,16 (1):187-189 (in Chinese).[趙德志,吳浩,丁秋林.基于DirectShow的實(shí)時(shí)視頻信息采集與壓縮 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(1):187-189.]
[13]LIU Bo,WANG Jianhua,NI Peng.Video capture and transmission based on DirectShow [J].Natural Sciences Journal of Harbin Normal University,2009,25 (4):72-75 (in Chinese).[劉波,王建華,倪鵬.基于DirectShow的視頻采集和傳輸 [J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2009,25(4):72-75.]
[14]XIAO Changjian.Brief talk of capturing images from video streams by DirectShow technology [J].Computer Era,2009,27 (11):66-67 (in Chinese).[肖長(zhǎng)健.淺談 Direct-Show技術(shù)捕獲視頻流中幀圖像 [J].計(jì)算機(jī)時(shí)代,2009,27(11):66-67.]
[15]ZHU Yihua,ZHOU Yanbo,WANG Xingxing,et al.Designing and implementing real-time video frame capturing based on DirectShow [J].Computer Application and Software,2011,28 (1):35-38 (in Chinese). [朱尹華,周沿波,王興星,等.基于DirectShow視頻幀實(shí)時(shí)捕捉的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用與軟件,2011,28 (1):35-38.]
[16]TAN Yi,HUANG Huan,LIU Hui.Design and realization of a video compression system based on DirectShow[J].Computer and Figure Engineering,2006,34 (6):138-140 (in Chinese).[譚毅,黃歡,劉輝.基于DirectShow的視頻壓縮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)與數(shù)字工程,2006,34(6):138-140.]