資源簡介
利用MFC的Picture控件顯示和處理圖像,后面又添加了播放視頻和捕獲攝像頭畫面的功能,其中播放視頻的功能只有 'Play' 和 'Stop',不能實現暫停
代碼片段和文件信息
//////////////////////////////////////////////////////////////////////
//?Video?Capture?using?DirectShow
//?Author:?Shiqi?Yu?(shiqi.yu@gmail.com)
//?Thanks?to:
// HardyAI@OpenCV?China
// flymanbox@OpenCV?China?(for?his?contribution?to?function?CameraName?and?frame?width/height?setting)
//?Last?modification:?April?9?2009
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//?使用說明:
//???1.?將CameraDS.h?CameraDS.cpp以及目錄DirectShow復制到你的項目中
//???2.?菜單?Project->Settings->Settings?for:(All?configurations)->C/C++->Category(Preprocessor)->Additional?include?directories
//??????設置為?DirectShow/Include
//???3.?菜單?Project->Settings->Settings?for:(All?configurations)->link->Category(Input)->Additional?library?directories
//??????設置為?DirectShow/Lib
//////////////////////////////////////////////////////////////////////
//?CameraDS.cpp:?implementation?of?the?CCameraDS?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“CameraDS.h“
#pragma?comment(lib“Strmiids.lib“)?
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCameraDS::CCameraDS()
{
m_bConnected?=?false;
m_nWidth?=?0;
m_nHeight?=?0;
m_bLock?=?false;
m_bChanged?=?false;
m_pframe?=?NULL;
m_nBufferSize?=?0;
m_pNullFilter?=?NULL;
m_pMediaEvent?=?NULL;
m_pSampleGrabberFilter?=?NULL;
m_pGraph?=?NULL;
CoInitialize(NULL);
}
CCameraDS::~CCameraDS()
{
CloseCamera();
CoUninitialize();
}
void?CCameraDS::CloseCamera()
{
if(m_bConnected)
m_pMediaControl->Stop();
m_pGraph?=?NULL;
m_pDeviceFilter?=?NULL;
m_pMediaControl?=?NULL;
m_pSampleGrabberFilter?=?NULL;
m_pSampleGrabber?=?NULL;
m_pGrabberInput?=?NULL;
m_pGrabberOutput?=?NULL;
m_pCameraOutput?=?NULL;
m_pMediaEvent?=?NULL;
m_pNullFilter?=?NULL;
m_pNullInputPin?=?NULL;
if?(m_pframe)
cvReleaseImage(&m_pframe);
m_bConnected?=?false;
m_nWidth?=?0;
m_nHeight?=?0;
m_bLock?=?false;
m_bChanged?=?false;
m_nBufferSize?=?0;
}
bool?CCameraDS::OpenCamera(int?nCamID?bool?bDisplayProperties?int?nWidth?int?nHeight)
{
HRESULT?hr?=?S_OK;
CoInitialize(NULL);
//?Create?the?Filter?Graph?Manager.
hr?=?CoCreateInstance(CLSID_FilterGraph?NULL?CLSCTX_INPROC
IID_IGraphBuilder?(void?**)&m_pGraph);
hr?=?CoCreateInstance(CLSID_SampleGrabber?NULL?CLSCTX_INPROC_SERVER?
IID_IbaseFilter?(LPVOID?*)&m_pSampleGrabberFilter);
hr?=?m_pGraph->QueryInterface(IID_IMediaControl?(void?**)?&m_pMediaControl);
hr?=?m_pGraph->QueryInterface(IID_IMediaEvent?(void?**)?&m_pMediaEvent);
hr?=?CoCreateInstance(CLSID_NullRenderer?NULL?CLSCTX_INPROC_SERVER
IID_IbaseFilter?(LPVOID*)?&m_pNullFilter);
hr?=?m_pGraph->AddFilter(m_pNullFilter?L“NullRende
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????11607??2009-10-30?23:24??CameraDS.cpp
?????文件????????3304??2009-10-30?23:24??CameraDS.h
?????文件???????????1??2006-11-20?00:11??ClassDiagram1.cd
?????目錄???????????0??2009-11-21?19:46??Debug\
?????文件????????6292??2009-11-21?19:46??Debug\BuildLog.htm
?????文件??????208444??2009-10-30?23:24??Debug\CameraDS.obj
?????文件??????????69??2009-11-21?19:46??Debug\mt.dep
?????文件?????1930752??2009-11-21?19:46??Debug\mymfc.exe
?????文件?????????406??2009-10-29?00:28??Debug\mymfc.exe.em
?????文件?????????472??2009-10-29?00:28??Debug\mymfc.exe.em
?????文件?????????381??2009-11-21?19:46??Debug\mymfc.exe.intermediate.manifest
?????文件?????6062836??2009-11-21?19:46??Debug\mymfc.ilk
?????文件??????125365??2009-11-01?16:18??Debug\mymfc.obj
?????文件????24838144??2009-10-29?00:21??Debug\mymfc.pch
?????文件????12438528??2009-11-21?19:46??Debug\mymfc.pdb
?????文件???????36892??2009-11-21?19:46??Debug\mymfc.res
?????文件??????236233??2009-11-03?20:35??Debug\mymfcDlg.obj
?????文件??????463089??2009-10-29?00:21??Debug\stdafx.obj
?????文件?????1469440??2009-11-03?20:35??Debug\vc90.idb
?????文件?????2879488??2009-11-03?20:35??Debug\vc90.pdb
?????目錄???????????0??2009-10-30?22:44??DirectShow\
?????目錄???????????0??2009-10-30?22:44??DirectShow\Include\
?????文件?????????631??2008-02-27?14:52??DirectShow\Include\activecf.h
?????文件????????1826??2008-02-27?14:52??DirectShow\Include\amaudio.h
?????文件????????1065??2008-02-27?14:52??DirectShow\Include\amparse.h
?????文件???????73261??2008-02-27?14:52??DirectShow\Include\amstream.h
?????文件????????3974??2008-02-27?14:52??DirectShow\Include\amva.h
?????文件???????19851??2008-02-27?14:52??DirectShow\Include\Amvideo.h
?????文件????????1097??2008-02-27?14:52??DirectShow\Include\atsmedia.h
?????文件????????1532??2008-02-27?14:52??DirectShow\Include\audevcod.h
?????文件???????20543??2008-02-27?14:52??DirectShow\Include\austream.h
............此處省略167個文件信息
- 上一篇:華科軟件工程作業_學生管理系統
- 下一篇:VC++與JS交互源碼——百度地圖
評論
共有 條評論