-
大小: 1.1MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-08-29
- 語言: 其他
- 標簽: DirectShow??CameraDS??OpenCV??x64??
資源簡介
包含DirectShow 的依賴文件和庫,64位、32位均有,以及CameraDS.h,CameraDS.cpp。用于基于opencv的攝像頭/相機圖像、視頻采集程序,或將原X86平臺程序移植至X64平臺。
實踐發現此DirectShow +CameraDS方法相比OpenCV自帶videocapture 類在速度上快得多。

代碼片段和文件信息
//////////////////////////////////////////////////////////////////////
//?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“NullRendere
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-03-13?10:49??dirtshow_x64_x86\
?????文件???????11605??2011-04-30?16:26??dirtshow_x64_x86\CameraDS.cpp
?????文件????????3302??2011-04-30?16:26??dirtshow_x64_x86\CameraDS.h
?????目錄???????????0??2017-03-13?10:50??dirtshow_x64_x86\DirectShow\
?????目錄???????????0??2015-11-30?16:04??dirtshow_x64_x86\DirectShow\Include\
?????文件?????????631??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\activecf.h
?????文件????????1826??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\amaudio.h
?????文件????????1065??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\amparse.h
?????文件???????73261??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\amstream.h
?????文件????????3974??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\amva.h
?????文件???????19851??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\Amvideo.h
?????文件????????1097??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\atsmedia.h
?????文件????????1532??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\audevcod.h
?????文件???????20543??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\austream.h
?????文件???????13805??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\aviriff.h
?????文件????????6820??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\ba
?????文件??????125594??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\bdaiface.h
?????文件???????54539??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\bdamedia.h
?????文件???????53527??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\Bdatif.h
?????文件???????15486??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\bdatypes.h
?????文件?????????944??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\comlite.h
?????文件??????178266??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\control.h
?????文件???????88071??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d.h
?????文件???????72232??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d8.h
?????文件???????16088??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d8caps.h
?????文件???????63735??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d8types.h
?????文件???????96132??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d9.h
?????文件???????22164??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d9caps.h
?????文件???????69800??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3d9types.h
?????文件???????26113??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3dcaps.h
?????文件???????14874??2011-04-30?16:26??dirtshow_x64_x86\DirectShow\Include\d3drm.h
............此處省略126個文件信息
- 上一篇:AD9854驅動
- 下一篇:2017年(最新)SSCI檢索期刊目錄
評論
共有 條評論