资源描述:
《学习资料vc 捕捉摄像头视频!(learning materials vc capture video camera!)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学习资料vc++捕捉摄像头视频!(Learningmaterialsvc++capturevideocamera!)Abstract:Thispapermainlytalksabouttheprogrammingideaofvideocapture(capturingstaticimage)withDirectshow,andprovidesavideocaptureclassCcaptureVideoandanexampleforcameraprogramming.PrefaceDirectShowisapackagedevelopedbyMicro
2、softCorpforstreamingmediaprocessingonWindowsplatform,whichisreleasedwithDirectXdevelopmentkit.DirectShowprovidesstrongsupportforcaptureandplaybackofmultimediastreams.UsingDirectShowtodevelopapplications,wecaneasilycapturedatafromtheacquisitioncardsupportingtheWDMdrivermodel,andt
3、henthecorrespondingpost-processing,andevenstoredinthefile.DirectShowisbasedonCOM,inordertowriteDirectShowapplications,youneedtounderstandthebasicknowledgeofCOMclientprogramming.DirectShowprovidesalargenumberofinterfaces,butitisnotconvenienttofinditinprogramming.Ifyoucanbuildavid
4、eocaptureclasstoencapsulatesomeofthecommonlyusedactions,thenitwillbemoreconvenient.ProgrammingideasInordertoestablishvideocaptureapplication,DirectShowprovidesaGraphcalledCaptureBuilderCaptureGraphBuilder,IcaptureGraphBuilder2interface,theinterfacecanestablishandcontrolCaptureGr
5、aph.Tobuildavideocaptureprogram,youmustfirstobtainandinitializetheIcaptureGraphBuilder2interface,andthenselectanappropriatevideocapturedevice.Afterselectingagooddevice,createCapturefilterforthedevice,andthencallAddFiltertoaddCapturefiltertoFilterGraph.Ifyoujustwanttousethecamera
6、forreal-timemonitoring,youonlyneedtocallICaptureGraphBuilder2::RenderStreamonthebasisoftheabove:ICaptureGraphBuilder2*pBuild;//CaptureGraphBuilderTheinitializationcode/ellipsisIBaseFilter*pCap;//Videocapturefilter.OmittheinitializationandaddedtotheFilter/GraphpartofthecodePBuild
7、->RenderStream(&PIN_CATEGORY_PREVIEW,&MEDIATYPE_Video,pCap,NULL,NULL);DirectShowprovidesawaytocapturestaticimages:usingSampleGrabberfilter.Thefollowingthreestepscanbedoneinturn:ThefirststepistodefineaclassthatimplementsthecallbackinterfaceGrabberofSampleIsampleGrabberCB:ClassCSa
8、mpleGrabberCB:publicISampleGrabberCB{Completebe